【Springcloud】详解Ribbon(负载均衡)

在这里插入图片描述
大家下午好,这次我们说说Springcloud的第二个组件——Ribbon。
在这里插入图片描述

Ribbon是什么?

Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,将面向服务的REST模板请求自动转换成客户端负载均衡的服务调用。

和Nginx的区别?

Nginx是服务端负载均衡,而Ribbon是客户端负载均衡。
在这里插入图片描述

啥叫客户端,啥叫服务端?

Eureka的注册中心叫作服务端,生产者和消费者叫作客户端。一般在项目中,一个服务既是生产者,又是消费者。

使用Ribbon来实现客户端的负载均衡

get

(1)getForEntity函数

RestTemplate restTemplate=new RestTemplate();
ResponseEntity<String> responseEntity=restTemplate.getForEntity("http://USER-SERVICE/user?name={1}",String.class,"didi");
String body=responseEntity.getBody();

(2)getForObject函数
它是getForEntity的进一步封装,可以实现请求直接返回包装好的对象内容。

RestTemplate restTemplate=new RestTemplate();
String result=restTemplate.getForObject(uri,String.class);

post

(1)postForEntity函数
在调用后返回ResponseEntity< T>对象。

RestTemplate restTemplate=new RestTemplate();
User user=new User("didi",30);
ResponseEntity<String> responseEntity=restTemplate.postForEntity("http://USER-SERVICE/user,user,String.class);
String body=responseEntity.getBody();

(2)postForObject函数
将请求响应的body内容包装成对象来返回使用。

RestTemplate restTemplate=new RestTemplate();
User user=new User("didi",20);
String postResult=restTemplate.postForObject("http://USER-SERVICE/user,user,String.class);

(3)postForLocation函数
以POST请求提交资源,并返回新资源的URI。

User user=new User("didi",40);
URI responseURI=restTemplate.postForLocation("http://USER-SERVICE/user,user);

put

put函数为void类型,所以没有返回内容。

RestTemplate restTemplate=new RestTemplate();
Long id=10001L;
User user=new User("didi",40);
restTemplate.put("http://USER-SERVICE/user/{1}",user,id);

delete

RestTemplate restTemplate=new RestTemplate();
Long id=10001L;
restTemplate.delete("http://USER-SERVICE/user/{1}",id);
发布了258 篇原创文章 · 获赞 769 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/qsbbl/article/details/97659458