服务治理那些事

181 阅读2分钟

「这是我参与2022首次更文挑战的第40天,活动详情查看:2022首次更文挑战」

单机注册

  • 上面我们已经单机启动了eureka服务。下面我们看看服务注册是否可以。我们已之前payment模块为例。
  • pom中添加client坐标
 ​
 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>
 ​
  • yml中填入地址
 
 eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka
 
  • 主启动类上添加注解@EnableEurekaClient

集群注册

  • 现在我们多开几个payment进行注册

  • 因为我们是在idea中开发的。还没有打成jar包。也是为了方便调试这里通过idea直接复制的payment项目

  • 现在我们看看我们本地idea启动项目的情况 , payment已经有两个了分别是8001,8002

客户调用

  • 还记得我们的feature/cloud-pre上order模块是如何调用payment的吗。是的我们通过resetTemplate进行http方式调用的。现在我们还是通过他进行调用只不过调用地址是payment注册在eureka上的服务名。
  • 这里客户端如何注册和payment配置一样的。因为虽然是order调用payment,但是对于eureka来说payment和order都是客户端。所以配置都是一样的。

  • 现在在单机的eureka上我们看到了单机的order服务和集群的payment服务。下面我们order调用payment的地方做如下修改

  • 只是调用跟地址进行了修改。当然前提是restTemplate支持了负载均衡。

  • 下面结果如何读者可以自行测试了。http://localhost/order/getpayment/123针对这个接口调用多次。会发现返回结果里的服务端口会不断的8001,8002切换。因为restTemplate默认是轮询的。而我们这里payment提供了两个服务。到这里我们就实现了eureka单机版的服务注册及调用