结合上节的内容, 我们创建了一个服务中心和一个服务提供者, 但是要想到,有服务提供者就会有服务的消费者,消费者的意思就是,调用其他服务(项目)提供的接口的项目。

这一节, 我们就先讲基础的服务消费者形式, 除了这种方式还有,ribbon 和fegin 的方式, 这一节, 我们着重讲基础的消费形式。 

使用LoadBancerClient   

      在spring-cloud common 中提供了大量的抽象类, 例如DiscoverClient, 在这里我们着重介绍LoadBanncerClient。

LoadBalancerClient接口的命名中,我们就知道这是一个负载均衡客户端的抽象定义,下面我们就看看如何使用Spring Cloud提供的负载均衡器客户端接口来实现服务的消费。(本段引自翟老师的博客)

      好了, 我们看一下如何调用其他服务的接口。

      还是老样子, 创建一个eureka的客户端,叫做eureka-client1 , 为了和上一个服务提供者区分开, 我们就加了一个1,

创建完了以后, 要干什么呢, 肯定是配置文件了啊

      spring.application.name 服务名称

      server.port   服务的端口号

      eureka.client.serviceUrl.defaultZone 服务中心的地址

SpringCloud微服务学习2-基础服务消费者-LMLPHP

现在就是一个eurekaClient了, 由于我们上一个服务提供者没有提供接口, 我们要创建一个, 随便什么都行

SpringCloud微服务学习2-基础服务消费者-LMLPHP

然后在服务消费方, 我们要在启动类上面加上注解, @EnableDiscoverClient 或者 @EnableEurekaClient

接着由于我们调用接口时要用到 RestTemplate 所以我们在这里要做一个类似于注入的操作

SpringCloud微服务学习2-基础服务消费者-LMLPHP

 

然后我们创建一个Controller 里面要有LoadBanncerClient 和 RestTmplate 的实例, 直接看代码把

SpringCloud微服务学习2-基础服务消费者-LMLPHP

然后 我们使用loadBalancerClient根据服务的名称获取一个服务的实例, 然后根据实例提供的服务host, 端口进行对接口的调用,

restTemplate除了这个方法还提供了很多方法, 这里仅仅是使用了get类型的方法, 具体的方法, 小伙伴们可以点开源码看一下

这个时候 我们在访问 http://localhost:1003/dc (我的服务消费方使用的是1003端口) 我们可以看到

 

SpringCloud微服务学习2-基础服务消费者-LMLPHP

好了, 基础消费者就此结束, 请等待下一篇文章:SpringCloud微服务学习3-ribbon

有问题欢迎下方留言,或者添加个人QQ 3024195466

10-03 14:09