于是乎,更新来了,还顺便给该系列教程改了个名儿《最适合入门的SpringCloud教程》
通过之前的几篇文章,在代码中会有三个项目,分别是两个注册中心和一个客户端,如下图:
今天将会在这个代码的基础上:
将 eureka-client-8803 作为服务提供者
通过IDEA将eureka-client-8803启动在8803和8804端口上,模拟服务提供者集群
再创建一个服务消费者eureka-consumer-8805
让消费者通过服务调用和负载均衡调用服务提供者的服务。
Tips:需要了解过RestTemplate的使用 SpringBoot图文教程17—上手就会 RestTemplate 使用指南「Get Post」「设置请求头」
在服务提供者eureka-client-8803中写入一个TestController类
IDEA 中 默认项目启动是单例的,即一个项目只能够在一个端口号启动一次。但是在IDEA 实际上是支持多实例的,一个项目可以通过修改端口号启动多次。
以eureka-client-8803为例
1.修改eureka-client-8803的IDEA启动设置
IDEA的版本不同,还会出现如图所示的配置
2.在 8803 端口号启动项目
3.不要关闭 8803 这个服务,然后直接修改yml中的端口号为8804,再次通过启动类启动
通过以上步骤,就启动了两个服务提供者,用来模拟集群,效果如下
根据之前教程中的步骤,再创建一个客户端eureka-consumer-8805作为消费者
pom配置
application配置文件
启动类
Ribbon是一个基于HTTP和TCP的客户端负载均衡工具。
Ribbon是Netflix发布的开源项目,主要功能是提供客户端的负载均衡算法。
关于Ribbon的简介,有一个名词需要进行解释,客户端负载均衡?
负载均衡是一种非常常见的技术,例如:Nginx,F5。
对于Nginx来说,在Nginx中存储一份服务端的清单,用户的请求到达Nginx之后,Nginx会根据负载均衡策略从服务清单中选择一台服务器去处理客户端的请求。
服务清单存储在负载均衡服务中,这就是服务端负载均衡。
而客户端负责均衡,例如Ribbon,本身是不存储可用服务清单的,需要服务清单的时候通过服务节点找注册中心获取。
RestTemplate+Ribbon的配置
1.在服务消费者 eureka-consumer-8805中导入Ribbon的依赖
2.在启动类中写RestTemplate+Ribbon的配置
演示Ribbon负载均衡的效果
1.在消费者中创建接口 通过RestTemplate调用服务提供者
注意:RestTemplate请求地址中写的不是 ip+端口号 而是被调用服务的服务名称
2.重启所有的服务,两个服务提供者,一个服务消费者
3.访问服务消费者的接口
请求地址:
可以看到每次请求端口号不一样
以上就是RestTemplate+Ribbon的负载均衡的基本使用
RestTemplate负责服务调用
Ribbon实现负载均衡
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h60684.shtml