16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)

HoverInTheSky
发布于 2022-6-28 17:39
浏览
0收藏

五、组成 Eureka 集群


修改本地 hosts 配置


host 文件添加两台 Eureka server 的地址映射,都为本地 localhost 地址

127.0.0.1 eureka-server1
127.0.0.1 eureka-server2

修改 Eureka Server 配置


两个服务互相向对方注册,第一个 Eureka 开放 8761 端口,注册到第二个 Eureka 的 8762 端口。

 

第一个 Eureka Server 的配置并启动

server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server1
  client:
    serviceUrl:
      defaultZone: http://eureka-server1:8762/eureka/

修改第二个 Eureka Server 的配置,并启动

server:
  port: 8762
eureka:
  instance:
    hostname: eureka-server2
  client:
    serviceUrl:
      defaultZone: http://eureka-server2:8761/eureka/


16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区访问 http://localhost:8761/

 

可以看到两个 Eureka Server。16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区访问 http://localhost:8762/

 

可以看到两个 Eureka Server。16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区根据上面的两张图,说明两台 Eureka Server 组成了一个集群环境。

 

六、组成服务集群


接下来将服务注册到 Eureka 集群上。另外因为我最开始用的商品服务的名字是 ServiceA,而不是 ProductService,所以案例中的截图都是 ServiceA,订单服务对应的是 ServiceB,不影响案例演示。

 

将服务 A 配置成注册到 Eureka 集群。在 defaultZone 配置中添加第二个 eureka 的服务地址。

server:
  port: 8006
spring:
  application:
    name: ServiceA
eureka:
  instance:
    hostname: localhost
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka,http://localhost:8762/eureka

然后启动服务 A。

 

然后将服务 A 的 port 改为 8006 后,再次启动一个服务 A,相当于部署了两个服务 A,后续可以作为测试负载均衡的功能。16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区发现一个 Eureka 的问题,注册列表总是刷新不出最新的注册信息,重启 Eureka 服务后就刷出来了。

 

接着我们把服务 A 的passjava 方法,打下日志,后面观察两个服务 A 分别被服务 B 调用了几次。

 

七、修改调用者的配置


将服务 B 配置成注册到 Eureka 集群。在 defaultZone 配置中添加第二个 eureka 的服务地址。

 

两个 Eureka 服务中都有服务 B 的注册信息。16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区八、测试集群调用


接下来测试两个服务 A 组成微服务集群后,利用 Ribbon 负载均衡组件实现服务的负载均衡,说白了,就是两个服务 A,分别被服务 B 平均调用了。

测试方法:多次刷新浏览器,访问服务 B 的 API,服务 B 会调用服务 A。如下图所示:

http://localhost:9091/test/悟空

第一个服务 A 被服务 B 调用了 6 次:16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区第二个服务A 被服务 B 调用了 7 次:16 图 | 实战 Eureka 集群搭建+服务注册+调用(二)-鸿蒙开发者社区根据上面的结果说明 Eurkea 集群 + Ribbon + 微服务集群的案例演示完成。

 

九、总结


本篇通过案例演示的方式,带着大家练习了如下内容:

 

 •  如何使用 Eureka 作为注册中心。


 •  如何将多个服务注册到 Eureka 上。


 •  通过使用 Eureka,服务间的调用不再需要知道对方的 IP 地址。


 •  如何将两个 Eureka Server 在本地组成 Eureka 集群。


 •  如何将多个服务注册到 Eureka 集群上。


 •  如何将多个相同的服务组成微服务集群。

标签
已于2022-6-28 17:39:11修改
收藏
回复
举报
回复
    相关推荐