Ribbon是一个客户端IPC库,在云中经过实战测试。它提供以下功能
- 负载均衡
- 容错
- 异步和反应模型中的多协议(HTTP,TCP,UDP)支持
- 缓存和批处理
1.maven依赖的引入
<dependency> <groupId>com.netflix.ribbon</groupId> <artifactId>ribbon</artifactId> <version>2.2.2</version> </dependency>
概观
功能区提供软件负载平衡器以与服务器群集通信。负载平衡器提供以下基本功能:
- 向通信客户端提供单个服务器的公共DNS名称或IP
- 根据特定逻辑在服务器列表中旋转
某些负载平衡器还可以提供类似的高级功能
- 通过将客户端和服务器划分为多个区域(如数据中心中的机架)来建立客户端和服务器之间的关联,并支持同一区域中的服务器以减少延迟
- 保持服务器统计信息,避免服务器出现高延迟或频繁出现故障
- 保持区域统计并避免可能中断的区域
利用高级功能需要使用功能区中提供的客户端之一,因为它与负载均衡器集成,并为负载均衡器统计信息提供输入
2.启动类注入
@LoadBalanced//让restTemplate具备Ribbon负载均衡的能力。
public RestTemplate restTemplate()
{
return new RestTemplate();
}
3.通过RestTemplate 进行负载调用
//http://localhost:7900/simple/
//VIP Virtual IP:虚拟IP,使用的是服务提供者的ServiceId,也就是application.name
//HAProxy HeartBeat
//microservice-provider-user:7900
logger.info("到这里........................");
return this.restTemplate.getForObject("http://one-client/home/index", String.class);