ribbon是一款用于实现客户端负载均衡的组件
主要通过对本地缓存的微服务对应的ip列表运用定义的负载均衡算法进行选择要调用的具体ip
其中包括轮询,随机,权重等机制
使用
1.引入依赖
2.对RestTemplate加上LoadBalance注解进行增强
3.有需要的话修改配置文件字段信息既可
同时可以通过实现AbstractLoadBalance抽象类来自定义负载均衡算法
从而通过指定算法类来对具体的服务进行更细粒度的选择调用
比如金丝雀发布,各个相同版本的服务互相调用,不同版本的服务不互相调用
或者说为了提高性能,优先选择同一个集群的服务进行相互调用等
通过为RestTemplate设置拦截器来实现解析域名,定期向nacos的本地缓存同步注册列表到ribbon本地缓存,
调用ribbon本地缓存的ip列表,通过负载均衡算法来选取ip,
比如轮询算法,就是通过循环加cas,通过一个atomicInteger每次新增一,然后mod整个集群的节点数,再设置会atomicInteger变量.通过这个atomicInteger作为下标来选取下标对应的ip,
并进行http请求完成