微服务系列<3>---微服务的调用组件 rpc 远程调用

这篇具有很好参考价值的文章主要介绍了微服务系列<3>---微服务的调用组件 rpc 远程调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是rpc调用,让我们调用远程方法就像调用本地方法一样  这就属于rpc调用
rpc是针对于本地来说的
调用远程方法根调用本地方法一样 如果能达到这种效果 就是rpc调用

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

如果达到一种效果 调用远程和调用本地一样 他就是一种rpc框架

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

2个微服务 之间发的调用 我们之前通过ribbon的方式发起调用 

需要构建一个url 然后再利用我们加了@Lb的restTemplalte做的负载均衡策略

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

  如果我可以根据本地方法一样 order.findById()一样的话就很方便 的完成一次调用
我可以基于jdk的动态代理拿一个代理对象  然后我可以调用一个方法
第二就是通过协议层进行 加密 解密 (对请求进行编码 或者序列化 )

第三就是 一定有远端通信(传输层面) nio/bio、netty、grpc
发数据  接受数据(解码) 反射执行 真正的服务

代理层
协议层
传输层
微服务之间完成feign,springcloud 提供了一个rpc框架 feign



微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

不用像ribbon一样构建一个url  然后restTemplate 发起一个请求
ribbon和feign的对比

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

ribbon 是构建一个url 然后基于restTemplate发起的调用(@Lb提供负载均衡的能力)
feign 需要做个标记  记录这是一个Feign调用



代理层   动态代理层

协议层   加密 解密 编码 解码

网络通信层  发起http请求

feign就是一种rpc架构,在springcloud中是怎么应用的

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

feign的使用,Feign 底层也实现了负载均衡
rpc 框架的负载均衡怎么实现的
feign底层整合了ribbon


feign的扩展
1. 比如说用户下单,扣减库存的时候可能会涉及到分布式事务,分布式事务可能就会有一个全局的事务id(pid),有时候要做授权
https://blog.csdn.net/qq_41885819/article/details/121955452
怎么在feign的请求头中添加东西
还有rpc框架数据在网络中传输,数据越小效率越高,这时候我们要对数据进行压缩
在feign中也可以配置对数据进行压缩,这些都是我们要考虑的

springcloud中的feign的扩展点 
1.feign的日志组件 logger 帮助我们记录日志请求日志
并且它可以定义我们的日志级别

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

可以将请求日志打印出来  发一个请求会打印很多请求日志、

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

配置日志级别------FULL  (全部级别)
默认没有任何日志  不利于我们生产排查问题
生产配置BASIC  帮助我们在生产环境追踪问题

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

默认是没有任何日志输出的,不利于我们排查问题.性能最好的 因为不用打印日志
basic 我们也可以基于yaml配置  他上面会显示执行时间,可以帮助我们追踪生产问题

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

执行时间 这是通过我们yaml的方式来执行的
当然也可以全局配置
个性化需求,可以在yaml 中配置

feign支持日志.因为定位问题的话没有日志的话 是很麻烦的
第二个就是我要通过feign 往下游传递我的token 信息  feign 帮我们实现了默认的拦截器

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

在请求发起的位置传递一个token,我想要给下游微服务传参的时候就可以使用这个拦截器

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

我们的feingn 底层依赖于ribbon,就可以配置一些超时时间
一个是连接的超时时间 一个是处理请求的超时时间
一个是连接的
一个是处理请求的

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构

我们超时之后 在微服务中是要做处理的 比如说降级或者熔断机制
不能说一直超时
或者说让我们的请求尽可能的快
数据压缩
对feign 的性能提升的一种配置
开启压缩 节约网络资源

微服务系列<3>---微服务的调用组件 rpc 远程调用,微服务,rpc,架构文章来源地址https://www.toymoban.com/news/detail-629128.html

压缩那些类型数据 比如说xml json
最小压缩值是多少
这样可以提高传输速率

到了这里,关于微服务系列<3>---微服务的调用组件 rpc 远程调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [RPC]:Feign远程调用

    摘要:RestTemplate;Feign;远程调用; Feign是一个简化HTTP客户端编写的框架,通过声明式方式将远程服务调用封装成简单接口调用。 1.2.1 使用RestTemplate发送远程调用代码 要求:系统调用者在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回。 1.2.1.1 项目示例

    2024年02月10日
    浏览(44)
  • 【Java框架】RPC远程调用

    RPC(Remote Procedure Call)叫作远程过程调用,它是利用网络从远程计算机上请求服务,可以理解为把程序的一部分放在其他远程计算机上执行。通过网络通信将调用请求发送至远程计算机后,利用远程计算机的系统资源执行这部分程序,最终返回远程计算机上的执行结果。 RP

    2024年02月15日
    浏览(37)
  • Hadoop RPC远程过程调用框架

    Hadoop RPC 分为两层:上层是直接供外面使用的公共 RPC 接口;下层是一个客户机服务器模型,该模型在实现过程中用到了 Java 自带的多个工具包,包括java.lang.reflect(反射机制和动态代理相关类)、java.net(网络编程库)和java.nio (NIO)等。 Hadoop RPC(远程过程调用)是Hadoop分布式文件系统

    2024年02月13日
    浏览(37)
  • 常见的远程过程调用(RPC)分析

    常见的远程过程调用(RPC)框架包括了许多开源和商业解决方案,它们旨在简化分布式系统中服务之间的通信和调用。以下是一些常见的 RPC 框架及其特点: gRPC : 基于 HTTP/2 协议的高性能 RPC 框架,由 Google 开发。 使用 Protocol Buffers 进行数据序列化,提供了跨语言的支持。

    2024年02月02日
    浏览(31)
  • 基于netty的rpc远程调用

    🚀🚀🚀这是一个手写RPC项目,用于实现远程过程调用(RPC)通信🚀🚀🚀 欢迎star串门 : https://github.com/red-velet/ 🚀Q-PRC 简单的RPC框架的实现 :该RPC框架实现了基本的远程过程调用功能,允许客户端通过网络调用远程服务的方法,实现分布式系统之间的通信和协作。 基于

    2024年02月14日
    浏览(35)
  • RPC核心原理(整体架构/调用过程)

    Server: Provider ,暴露服务,服务提供方 Client: Consumer ,服务消费,调用远程服务 Registry:服务注册与发现 RPC的调用过程如下: 第一步:server会将他需要暴露的服务以及他的地址信息注册到Registry这一注册中心。 第二步:client通过注册中心一只关注它所需要的服务在哪里,如果此时

    2024年02月09日
    浏览(43)
  • RPC远程调用加密方法获取返回值

    从混淆的加密JS中还原了加密参数的具体生成流程,结果想从JS转python的过程中第一步就卡住了。开头密钥JS代码如下,但是水平有限不知道如何转为python实现(如果有大佬知道希望可以评论指点)。利用execjs+jsdom来执行简化还原后的JS代码依旧无法实现。所以只能通过RPC的方式来

    2024年02月08日
    浏览(40)
  • RPC:Remote Procedure Call 远程过程调用

    目前,对于一个完整的应用来说,通常包含了若干支持不同功能的服务,亦或者是函数,这些服务之间往往可能需要互相调用,使用已经实现的服务功能,而不是需要在每个服务进程中再去重复实现已经有的功能。 这不仅对于开发者来说是一种比较合理的设计方式,对于服务

    2024年01月19日
    浏览(27)
  • 【C++】开源:grpc远程过程调用(RPC)配置与使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍grpc远程过程调用(RPC)配置与使用。 无专精则不能成,无涉猎则不能通。。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/grpc/grpc 官网

    2024年02月15日
    浏览(48)
  • 【基于netty+zookeeper的rpc远程调用框架】首篇——缘起

    🐼 作者简介:一名大三在校生🎋 空有想法,没有实践 缘起 作为一名即将步入社会的大三学生,我深知一份优秀的简历对于求职的重要性。暑期实习作为大学生涯中的一个重要节点,不仅是锻炼自己、积累经验的宝贵机会,更是向未来雇主展示自己能力和潜力的关键时期。

    2024年04月26日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包