用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
云原生
›
RPC的介绍和架构发展
RPC的介绍和架构发展
水军大提督
论坛元老
|
2024-9-14 06:45:34
|
显示全部楼层
|
阅读模式
楼主
主题
1613
|
帖子
1613
|
积分
4839
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
RPC概念:
RPC是远程过程调用协议,是一种不必要了解底层网络技能,调用远程计算机服务。
RPC框架的组成:
图1
当总项目的数据量、访问量不断进步,就把他分成多个服务,减轻单体机器的压力。分开的ABC服务之间要相互依靠,要数据,要数据的过程就是rpc。
如果使用常见的http协议,会带上很多不必要的数据,会降低通报数据的效率,我们只想要调用B服务的数据,因此,我们可以自定义一种通报格式。
RPC和http的区别?(口试)
1、RPC服务基于TCP/IP协议;HTTP服务基于HTTP协议。由于HTTP协议是位于TCP协议之上的,以是相比之下,RPC效率更高。
2、虽然RPC效率更高,但HTTP服务
开发
迭代会更快。
3、HTTP服务的缺点是消息封装痴肥,优势是对服务的提供和调用方没有任何技能限定,自由灵活,更符合微服务理念。
RPC架构的演变
最开始的调用:
图2
在调用方直接把提供方写死,然后只能调用这一个提供方。
也就是说,如果提供方出现标题,那么调用方也就找不到调用数据了。
出现的标题就是:调用方不知道自己在调用什么
+注册中心:
图3
这样就可以灵活的去找提供方了。
服务方找注册中心注册,调用方发现注册的提供方,然后调用方就可以调用提供方了。
出现的标题:如果提供方太多了怎么办,怎样选择提供方?
+路由层(负载均衡):
图4
负载均衡可以把哀求分布到多个提供方,以此进步系统的处理性能。
故障转移和负载均衡是解决服务器高可用性和性能标题的关键。
如果提供方A出现了标题,那么,就通过路由层调用提供方B,实现提供方的高可用性。
如果路由层出现标题了怎么办呢:
可以调用默认的提供方。
标题:哀求中的数据应该怎么去表现呢,怎样举行序列化和定义数据格式。
增加编码、序列化
图5
这样通过自己写的序列化和编码,可以使数据同一。
但是数据的调用肯定不是人人都能调用的,以是他还必要一个拦截器。这里使用token作为拦截器。调用方写一个token,提供方写一个token,双方的token同等就放行,不同等就不给过。
图6
但是像图6这种注册中心,负载均衡算法都是写好的,如果在
开发
过程中我想添加一个新的负载均衡算法大概注册中心,该怎么办呢?
图7
我们可以通过一个SPI来动态的加载注册中心,路由层,编码和拦截器,而且举行同一管理。像springboot的自动装配也是使用SPI。SPI像spring里的IOC的注入。
如果出现了标题,不能直接抛出异常吧,以是如果A挂了,那就调用其他服务,但是如果都挂了,就只能抛出异常了。
图8
这里出现异常之后,展示给调用方看,调用方根据环境,选择对应的容错机制,是故障转移还是忽略。
但是如果调用方发送多个数据,总不能全让提供方A担当了,然后让其他提供方同步等待,这样不可。可以弄一个线程池,吸收之后调用合适的方法。
图9
这样可以进步程序的吞吐环境。
常见的RPC(Remote Procedure Call)框架包罗:
Spring Cloud。由Pivotal公司开源,支持Java语言,提供了一套构建分布式系统的开源框架。
RMI。Java原生的RPC框架,限于Java语言,适用于Java跨版本或防火墙受限的环境。
Dubbo。由阿里巴巴
开发
,适用于Java语言,是一款高性能、轻量级的RPC框架,适用于大规模分布式系统。
Motan。微博内部使用的RPC框架,开源于2016年,仅支持Java语言。
gRPC。由Google
开发
,支持多种语言,使用Protocol Buffers(protobuf)作为接口定义语言(IDL),基于HTTP/2协议。
Tars。腾讯内部使用的RPC框架,开源于2017年,仅支持C++语言。
gRPC over HTTP/2。Google
开发
的RPC框架,支持多种传输协议和负载均衡策略。
RPC架构能经久不衰的原因:
1、分布式系统的需求
随着时代的发展,单体无法满足业务需求,RPC作为一种紧张的通讯协议,能够满足分布式系统的需求
2、RPC相关技能的演进
3、多语言的支持
RPC框架支持多种语言,是差异语言编写的程序能举行跨语言远程调用
4、差异场景的需求
差异的应用场景对RPC架构提出了各种需求,如:高并发,低延迟,可拓展性,安全性等,RPC就可以根据需求举行针对性的优化和功能拓展。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
水军大提督
论坛元老
这个人很懒什么都没写!
楼主热帖
MySQL高可用架构搭建实战
让软件飞——“X+”技术揭秘 ...
Docker(11)-- DockerFile详解
可观测性和传统监控的三大区别 ...
camunda工作流实战项目(表单设计器+流 ...
哈希算法-SHA-256-过程详解
使用 OpenTelemetry 和 Loki 实现高效 ...
1. SQL
〖Python接口自动化测试实战篇③〗- 什 ...
0. 数据库设计规范化
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
物联网
运维.售后
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表