Spring Cloud之微服务注册到Eureka Server集群后访问改造
上篇Spring Cloud之服务注册中心搭建Eureka Server服务注册中⼼ - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)已经已经成功将两个微服务注册到集群中,那么能正常能与注册前一样进行正常访问么?如果能,比之前没有注册到集群的访问优化了哪些内容呢?
首先看看注册集群之前的访问:
测试案例如下:
那么怎么改造才能通过eureka集群进行访问呢?简历查询的访问(如上图)没有服务嵌套调用,不用进行改造;需要改造的是嵌套服务调用的微服务,将url硬编码改为通过集群获取url。
具体改造如下:
为什么选择第一个实例,可以参考上篇最后关于微服务实例ID的介绍。
测试结果如下:
服务启动并不顺利,通过错误定位原因是修改了启动类名但是启动还是使用的原类名,解决方法就是使用mvn clean然后重新启动即可成功。同时注意Discoveryclient类由Spring提供,导错包会导致找不到getInstances方法。
通过三篇小作文将常规的服务调用改为Eureka集群服务注册之后的调用做了简单的实践,总结如下:
1)建Eureka集群服务端,涉及依赖
2)原服务改为Eureka集群客户端注册服务之服务端,涉及依赖
同时将RestTemplate注入Spring容器,可供Controller自动获取。
3)改造嵌套调用服务Controller,url通过DiscoveryClient获取
通过访问可以知道Spring Cloud摒弃了传统的RPC通信(参考Dubbo基础一之实战初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com),其就是RPC通信),采用了基于HTTP的REST方式,使得微服务接口更为灵活,服务提供者和消费者之间的依赖只需要一纸契约即可,而不存在代码级别的强依赖。