通过上述介绍,我们已经有了服务注册中心和服务提供者
下面我们来尝试构建一个服务的消费者
它要完成两个功能,发现服务和消费服务,其中发现服务由eureka客户端完成,消费服务由ribbon完成。
ribbon在eureka服务发现的基础上,实现了一套对服务实例的选择策略,从而实现对服务的消费。
在此之前我们需要做一些准备
启动之前的服务注册中心,为hello-service添加一个简单的接口,同时在创建一个hello-service2的项目并为之添加与hello-service相同的配置
在hello-service中新建一个HelloController的类
启动项目测试下接口
安装此配置创建hello-service2启动项目测试接口
这里为了区分将返回值写为hello2同时配置文件中的端口改为8081
至此准备工作完成我们也可以再次看下注册中心的情况
至此两个hello-service已经注册进来了。
我们正式开始构建服务的消费者
新建一个spring boot项目命名为ribbon-consumer
较之之前的hello-service我们加入了spring-cloud-starter-ribbon依赖
为服务主类加入@EnableDiscoveryClient注解
同时在该主类中创建RestTemplate的spring Bean实例并通过@LoadBalanced注解开启客户端的负载均衡
创建ConsumerController类并实现一个简单的/robbin-consumer的接口
application.properties做如下配置
spring.application.name=ribbon-consumer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka
启动项目
访问测
从测试结果显示ribbon-consumer分别在hello-service和hello-service2两个实例上做轮询访问
注:
由于各个服务间会相互调用所以服务的提供者和消费者也是相对的概念。