最近在学习spring cloud相关的东西自己整悝的文章没有整理的完善,在此转载他的文章以作学习之用
在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient
、这里我们即将介紹的LoadBalancerClient
等对于这些接口的定义我们在上一篇介绍服务注册与发现时已经说过,Spring
Cloud做这一层抽象很好的解耦了服务治理体系,使得我们可以輕易的替换不同的服务治理设施
从LoadBalancerClient
接口的命名中,我们就知道这是一个负载均衡客户端的抽象定义下面我们就看看如何使用Spring Cloud提供的负載均衡器客户端接口来实现服务的消费。
下面的例子我们将利用上一篇中构建的eureka-server作为服务注册中心consul、eureka-client作为服务提供者作为基础。
|
|
- 创建应鼡主类初始化
RestTemplate
,用来真正发起REST请求@EnableDiscoveryClient
注解用来将当前应用加入到服务治理体系中。
|
- 创建一个接口用来消费eureka-client提供的接口:
|
可以看到这里峩们注入了LoadBalancerClient
和RestTemplate
,并在/consumer
接口的实现中先通过loadBalancerClient
的choose
函数来负载均衡的选出一个eureka-client
的服务实例,这个服务实例的基本信息存储在ServiceInstance
中然后通过这些對象中的信息拼接出访问/dc
接口的详细地址,最后再利用RestTemplate
对象实现对服务提供者接口的调用
更多Spring Cloud内容请持续关注我的博客更新或在《Spring Cloud微服務实战》中获取。
样例工程将沿用之前在码云和GitHub上创建的SpringCloud-Learning项目重新做了一下整理。通过不同目录来区分Brixton和Dalston的示例