前言:
上一章我们学习了怎么把服务注册到服务注册中心,这一章学习负载均衡的调用
传送门:简单SpringCloud学习教程2(零基础也能看明白)
回顾与解答:
上一章我们已经做好了生产者注册到注册中心,也开了一个小集群,我们的集群做的是同一件事,(让服务器的压力减小了)那么我们怎么去让消费者公平的去调用生产者服务,来给他减少负担呢
学习目标:
负载均衡调用服务
学习内容:
打开idea,新建一个consume模块(俗称消费者)
选择如下依赖
添加配置,将我们的消费者模块也注册到服务注册中心
添加@EnableEurekaClient注解,这样我们的消费者模块就建好啦
启动服务,我们的注册中心多了server-consume这一条,这样我们的相互访问服务啦
接下来,我们往server(生产者)上写一个接口
注意看,我这里直接简写了一个返回字符串的接口,没有分层的去建service,controller,Impl,这些包,自己做的时候要注意规范
现在我们要去consume消费者里面写调用方法
开始前先普及负载均衡的概念
pring cloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon和feign。
Ribbon
是一个基于 HTTP 和 TCP 客户端的负载均衡器 ,它可以在客户端配置 ribbonServerList(服务端列表),默认是轮询的方式实现均衡负载。
Feign
Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用,而 Feign 是一个使用起来更加方便的 HTTP 客戶端
由于ribbon使用比较复杂,这里先以feign来讲,在消费者中,新建一个接口(这里认真看接口中的注释)
新建一个controller去调用接口中的方法
启动类添加@EnableFeignClients开启负载均衡功能
启动项目,这里启动可能会有报错,修改一下pom
浏览器输入localhost:9903,不停的刷新,交替显示9901和9902,表示成功了
学习产出:
feign中使用负载均衡,下一章我们来讲断路器
(本文整体比较单一,有许多不严谨的地方,旨在为刚学习springcloud想我这样的白,更好的理解概念)