亚马逊海外版网站,搜索引擎营销的内容和层次有哪些,wordpress 手机无菜单,网站开发技术和seo的联系什么是rpc调用,让我们调用远程方法就像调用本地方法一样 这就属于rpc调用
rpc是针对于本地来说的
调用远程方法根调用本地方法一样 如果能达到这种效果 就是rpc调用如果达到一种效果 调用远程和调用本地一样 他就是一种rpc框架2个微服务 之间发的调用 我们之前通过ribbon的方式…什么是rpc调用,让我们调用远程方法就像调用本地方法一样 这就属于rpc调用
rpc是针对于本地来说的
调用远程方法根调用本地方法一样 如果能达到这种效果 就是rpc调用如果达到一种效果 调用远程和调用本地一样 他就是一种rpc框架2个微服务 之间发的调用 我们之前通过ribbon的方式发起调用 需要构建一个url 然后再利用我们加了Lb的restTemplalte做的负载均衡策略如果我可以根据本地方法一样 order.findById()一样的话就很方便 的完成一次调用
我可以基于jdk的动态代理拿一个代理对象 然后我可以调用一个方法
第二就是通过协议层进行 加密 解密 对请求进行编码 或者序列化 第三就是 一定有远端通信传输层面 nio/bio、netty、grpc
发数据 接受数据解码 反射执行 真正的服务代理层
协议层
传输层
微服务之间完成feign,springcloud 提供了一个rpc框架 feign 不用像ribbon一样构建一个url 然后restTemplate 发起一个请求
ribbon和feign的对比ribbon 是构建一个url 然后基于restTemplate发起的调用Lb提供负载均衡的能力
feign 需要做个标记 记录这是一个Feign调用代理层 动态代理层协议层 加密 解密 编码 解码网络通信层 发起http请求feign就是一种rpc架构,在springcloud中是怎么应用的 feign的使用,Feign 底层也实现了负载均衡
rpc 框架的负载均衡怎么实现的
feign底层整合了ribbonfeign的扩展
1. 比如说用户下单扣减库存的时候可能会涉及到分布式事务分布式事务可能就会有一个全局的事务idpid有时候要做授权
https://blog.csdn.net/qq_41885819/article/details/121955452
怎么在feign的请求头中添加东西还有rpc框架数据在网络中传输数据越小效率越高这时候我们要对数据进行压缩
在feign中也可以配置对数据进行压缩这些都是我们要考虑的
springcloud中的feign的扩展点
1.feign的日志组件 logger 帮助我们记录日志请求日志
并且它可以定义我们的日志级别可以将请求日志打印出来 发一个请求会打印很多请求日志、配置日志级别------FULL (全部级别)
默认没有任何日志 不利于我们生产排查问题
生产配置BASIC 帮助我们在生产环境追踪问题默认是没有任何日志输出的,不利于我们排查问题.性能最好的 因为不用打印日志
basic 我们也可以基于yaml配置 他上面会显示执行时间,可以帮助我们追踪生产问题执行时间 这是通过我们yaml的方式来执行的
当然也可以全局配置
个性化需求,可以在yaml 中配置feign支持日志.因为定位问题的话没有日志的话 是很麻烦的
第二个就是我要通过feign 往下游传递我的token 信息 feign 帮我们实现了默认的拦截器在请求发起的位置传递一个token,我想要给下游微服务传参的时候就可以使用这个拦截器我们的feingn 底层依赖于ribbon就可以配置一些超时时间
一个是连接的超时时间 一个是处理请求的超时时间
一个是连接的
一个是处理请求的我们超时之后 在微服务中是要做处理的 比如说降级或者熔断机制
不能说一直超时
或者说让我们的请求尽可能的快数据压缩
对feign 的性能提升的一种配置
开启压缩 节约网络资源压缩那些类型数据 比如说xml json
最小压缩值是多少
这样可以提高传输速率