/*页首的跳转连接,*/

异步通信

异步通信主要有两种方式:

 1.rpc通信 (发生在传输层,优点:转化成二进制传输,传输速度快,缺点:但是对Idea来说传输两边服务的编程语音得一样,都是java)

 2.http协议 (发生在应用层,优点:可在两个不同编程语言所写的服务间进行传输 缺点:速度相对慢一些) ,物理层传输速度最快,因为是直接硬件对硬件

 (如何实现不同服务间的通信:如何在java代码中发起http请求:spring框架提供HttpClient框架 ---> RestTemplate对象,通过这个RestTemplate对象去调用对应的方法)

 eg:

一. 用户服务调用订单服务:

 1.用户服务:

@RestController
public class userController {
@GetMapping("user")
public String user(){
String MESG="进入用户服务";
RestTemplate restTemplate = new RestTemplate();
String forObject = restTemplate.getForObject("http://localhost:8087/order", String.class);
return forObject;
}
}
2.订单服务:
@RestController
public class OrderController {

@GetMapping("order")
public String order(){
String order="欢迎进入订单服务!";
return order;
}
}
 使用RestTemplate发生http请求缺点:
1.请求的url是写死的,服务集群时无法进行负载均衡
2.服务路径变化时,不利于后旗维护

解决使用RestTemplate的负载均衡问题:
1.
可以自己写一个自定义负载均衡策略,但是无法对服务进行安全检查,而且负载均衡策略比较单一
2.使用springcloud提供的Ribbon组件

posted @ 2022-02-22 09:56  猿之缘  阅读(730)  评论(0)    收藏  举报