Spring Cloud中使用@Loadbalanced实现负载均衡

什么是@Loadbalanced

使用 @LoadBalanced 注解是 Ribbon 实现负载均衡的一种常用方法。它的作用是在服务调用时自动选择负载均衡策略,并将请求转发到合适的后端服务实例上。
@LoadBalanced 注解可以与 Ribbon 客户端配合使用,以实现服务调用的负载均衡。它会自动识别服务名称和负载均衡策略,并将请求转发到后端服务实例上。这样可以简化服务调用的代码,并且使负载均衡的配置更加灵活。
需要注意的是,@LoadBalanced 注解需要在使用 Ribbon 客户端的类或方法上进行注解。同时,还需要在应用程序的配置文件中配置 Ribbon 客户端,以指定负载均衡策略和其他相关参数。

使用@Loadbalanced实现负载均衡

使用前我们先把Eureka集群改为单节点 可以在后续让我们更为方便

修改product-service服务和order-service服务的application.yml的Eureka配置

1.在创建RestTemplate的时候,添加注解@LoadBalanced

2.使用前使用微服务的服务名称来进行调用

使用restTemplate调用远程微服务:不需要拼接微服务的URL,用服务名称替换IP地址

修改前调用其他微服务,拼接服务调用url
        product  = restTemplate.getForObject("http://"+host+":"+port+"/product/1", Product.class);

修改后用微服务的服务名称来进行调用,更加方便
        product  = restTemplate.getForObject("http://service-product/product/1", Product.class);

3.负载均衡

使用@LoadBalanced注解后,除了方便使用服务名称进行调用之外,更重要的是也实现了服务调用的负载均衡功能。

修改product-service的controller

测试

简单吧到这里我们就已经实现类负载均衡了我们来测试一下看看

启动两个product服务

查看Eureka Web页面http://localhost:9000

SERVICE-PRODUCT,有2个端口分别是:9001和9011 的在线状态的实例

访问http://localhost:9001/product/1

访问http://localhost:9011/product/1

访问http://localhost:9002/order/buy/1  刷新两次可以看到两次访问的分别是9001和9011说明实现了。

负载均衡多次刷新访问发现9001和9011是交替出现,说明默认使用的负载均衡是轮询策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值