带有Netflix OSS和Amazon DynamoDB的微服务

为了访问DynamoDB,您需要通过Amazon IAM设置证书。 亚马逊上有一篇很棒的文章会指导您完成整个过程。 现在您已完成所有设置,让我们用users-server.yml中的实际值替换DynamoDB端点,访问密钥和秘密密钥。

太好了,您拥有制作包装的原料。 通过命令行,导航到项目文件夹,然后键入:

  mvn包//验证和编译项目 

让我们运行Eureka aka注册服务器。 这样,用户服务便可以注册自己,以便被API网关发现。 *请注意,您可以运行用户服务的多个实例,每次仅提供不同的端口。 默认端口为5555。在我们的示例中,我们将有2个实例。

  java -jar target / microservice-dynamoDB-0.0.1-SNAPSHOT.jar reg 
  java -jar target / microservice-dynamoDB-0.0.1-SNAPSHOT.jar用户5555 
  java -jar target / microservice-dynamoDB-0.0.1-SNAPSHOT.jar用户5556 

最后,让我们启动API网关。 它将作为一个单例服务器处理任何传入的请求,以使其到达一个中心点,因此我们可以抽象化和扩展实现。 只需运行:

  java -jar target / microservice-dynamoDB-0.0.1-SNAPSHOT.jar web 

恭喜,您已经设置了系统-现在让我们检查一下:http:// localhost:9999 / users

3.尤里卡又名注册服务器

当您有多个微服务一起工作时,它们需要一种相互发现的机制。 Eureka是基于REST的机制,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。 您可以在这里阅读更多信息:https://github.com/Netflix/eureka/wiki

幸运的是,Netflix工程师使注册服务器的运行过程变得如此简单:

注册服务器

4.用户微服务

现在,让我们定义用户微服务。 我们将服务分为4个不同的文件,每个文件都有其自己的具体功能。

用户服务器作为@SpringBootApplication,它依赖UserConfiguration.class定义其模型,控制器,存储库。 users-server.yml定义所有属性,例如端口号,服务名称,DynamoDB端点,访问密钥和秘密密钥。 在服务器启动时,它将以“用户服务”的名称将自己注册到注册服务器(Eureka)。 您可以启动用户服务器的多个实例,但是它们的名称相同。 因此,其他微服务可以在“用户服务”下引用它们,因此负载平衡只能选择一个流量较低的实例。 我知道,这太神奇了!