12.1
又是新的一个月了,这个月争取拿到offer!
哈哈开个玩笑,感觉面试常问的技术一共也就那些,主要还是得锻炼自己的临场应变能力,但这些只有在无数次面试中才能得到进步;
这些需要靠面试去磨,咱就先不聊了,继续总结两个最近复习的技术点
微服务是怎么实现远程调用的:
首先使用Nacos实现服务注册中心,服务提供方将自己注册到服务注册中心,服务调用方通过客户端负载均衡器从服务注册中心选取一个目标服务地址进行远程调用。
客户端负载均衡器早期用的Ribbon,现在使用的是Spring Cloud Loadbalancer。
具体使用的有两种方式:
- 一种是通过@LoadBalanced注解标识RestTemplate,使用RestTemplate进行远程调用,开发中使用不多。
- 另一种是使用OpenFeign进行远程调用。
OpenFeign的工作原理:
OpenFeign是一个微服务之间调用的Http客户端,它集成了负载均衡组件自动将请求发到不同的服务实例,它是一个http通信模板,底层使用第三方框架OkHttp发送http请求并获取响应结果, 整个请求的过程实现了RPC远程方法调用,将请求和响应自动封装为Java 对象。
它的使用流程:
1.接口定义:开发者通过定义Java接口来描述服务间的通信协议,包括URL、请求方法、请求参数等。
2.代理生成:在应用启动时,Feign接口会生成代理对象。
3.请求发送:当调用代理对象的方法时,Feign会根据方法的注解和参数生成HTTP请求,并发送给目标服务。Feign的底层使用的是第三方的OkHttp框架发起http请求。
4.负载均衡:OpenFeign集成了负载均衡组件(如Ribbon或Spring Cloud Loadbalancer),可以自动将请求发到不同的服务实例。
5.响应处理:目标服务处理完请求后,将响应返回给Feign客户端。
6.结果解析:OpenFeign会根据接口定义和注解,将HTTP响应解析为Java对象,并返回给调用者。

浙公网安备 33010602011771号