1、什么是客户端负载均衡(Ribbon)?
Ribbon是从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮训负载均衡策略。既在客户端实现负载均衡。
2、什么是服务端负载均衡(Nginx)?
Nginx是客户端所有请求统一交给Nginx,由Nginx进行实现负载均衡请求转发,属于服务器端负载均衡。 即请求由Nginx服务器端进行转发。
3、两者的应用场景?
Nginx适合于服务器端实现负载均衡 比如Tomcat ,Ribbon适合在微服务中RPC远程调用实现本地服务负载均衡,比如Dubbo、SpringCloud中都是采用本地负载均衡。
4、SpringCloud中如何使用客户端负载均衡?
在springcloud中使用客户端的负载均衡非常简单,在之前的博客中已经提到过(SpringCloud笔记(一)服务注册与发现),只需要在服务调用方配置如下
@Bean
@LoadBalanced //就能让这个RestTemplate在请求时拥有客户端负载均衡的能力
public RestTemplate restTemplate() {
return new RestTemplate();
}
@RestController
public class OrderController {
@Autowired
private RestTemplate restTemplate;
@RequestMapping("/getorder")
public String getOrder() {
// order 使用rpc 远程调用技术 调用 会员服务restTemplate
String memberUrl = "http://app-producer/getMember";
String result = restTemplate.getForObject(memberUrl, String.class);
System.out