ribbon是一个客户端负载均衡器,会从注册中心拉取可用服务,当客户端需要获取服务请求时,ribbon能够解析服务地址并实现负载均衡
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Service("orderService")
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
@Autowired
public RestTemplate restTemplate;
public Order getOrder(Long id){
Order order = getById(id);
User user = restTemplate.getForObject("http://user-service/user/" + order.getUserId(), User.class);
order.setUser(user);
return order;
}
}
其中“user-service”为微服务名称
public IRule ribbonRule() {
return new NacosRandomWithWeightRule();
}
# 被调用的微服务名
user-service:
ribbon:
# 自定义的负载均衡策略(基于随机&权重)
NFLoadBalancerRuleClassName: com.tuling.mall.ribbondemo.rule.NacosRandomWithWeightRule
Ribbon默认懒加载,意味着只有在发起调用的时候才会创建客户端。在进行服务调用的时候,如果网络情况不好,第一次调用会超时。
开启饥饿加载,解决第一次调用慢的问题:
ribbon:
eager-load:
# 开启ribbon饥饿加载
enabled: true
# 配置mall-user使用ribbon饥饿加载,多个使用逗号分隔
clients: user-service
原文地址:https://blog.csdn.net/weixin_74144099/article/details/135467934
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_56482.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!