「这是我参与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单机版的服务注册及调用