SpringCloud学习(五)--消费者整合Ribbon使其具备负载均衡的能力

Ribbon,空耳"惹(卷舌)苯".是Netfix发布的负载均衡器.

为Ribbon配置好服务提供者的地址列表后,Ribbon便可基于某种负载均衡算法帮助消费者请求生产者

【在Spring Cloud中,当EurekaClient整合了Ribbon后,Ribbon可以自动地获取EurekaServer的服务提供者的地址列表

使用消费者服务consumer整合Ribbon之前,首先需要在pom.xml中引入Ribbon的依赖

        <dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
		</dependency>

然后,打开consumer服务的启动类.找到restTemplate对象的Bean配置.添加上@LoadBalanced注解,即可完成对Ribbon的整合

此时,由于RestTemplate对象已经整合了Ribbon.

Ribbon会自动将虚拟主机名映射成服务的网络地址.

所以在请求生产者服务接口的时候,没有必要再输入IP和端口去指定处理服务的实例了.

修改一下消费者调用生产者获取用户接口的调用写法.

此时,还需要修改一下provider项目的yml配置.

由于Ribbon是将虚拟主机名映射成网络地址,而我的provider项目设置了其他的hostname,不再是localhost了.

所以需要让provider项目将自己的IP地址注册到EurekaServer上去.不然消费者将找不到被调用的生产者.

为了能够更加直观的看到restTemplate是否成功整合了Ribbon.

仅需要简单的修改一下生产者的接口,让其输出被调用时服务的端口即可.

分别启动eureka、provider和consumer项目.其中,provider启动两个服务实例.以验证消费者成功整合Ribbon.

成功启动服务后,进入Eureka服务发现与注册中心,查看一下已注册实例.

输入指定的http basic账号密码

 进入服务发现与注册中心

在浏览器输入http://localhost:8181/user/2.然后不停的刷新.就会发现消费者是有选择性的调用生产者实例.

那么说明,消费者的restTemplate已经成功整合了Ribbon组件.可以正常的将请求均匀分摊到多个生产者服务的接口上.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值