异数OS 织梦师-纤手(二)-- LPC RPC篇
异数OS 织梦师-纤手(二)– LPC RPC篇
本文来自异数OS社区
github: https://github.com/yds086/HereticOS
异数OS社区QQ群: 652455784
异数OS-织梦师(消息中间件 RPC技术)群: 476260389
织梦师-纤手 LPC RPC简介
纤手主要用于异数OS 之上性能级应用系统设计,他并不支持序列化等需要CPU密集型功能,因此他也不支持其他非C++语言平台,要求CPU同构(大端,小端),相比传统RPC 技术,提供10-100倍的调用性能提升,多样化的方案选择也使他可以面向不同性能级应用场合,方案原型都是最小化轻量级,开发者可以改造定义自己的RPC平台。
与众不同的特性
- 简单靠谱的框架,使用阻塞线程模型,因此并发设计更加简单实用,不需要考虑异步并发带来的算法复杂度以及错误处理等问题。
- 海量并发调用特性,由于异数OS的线程开销很低,1亿线程仅需4G内存,因此可以更加随意的使用LPC RPC技术,而不需要考虑其成本代价,传统LPC RPC技术往往被宿主平台的CPU数量线程数量等限制,而只能选择集群扩充并发RPC容量,RPC并发容量保守测试提升1000倍。
- 10-100倍 LPC RPC调用性能。
LPC 方案说明
LPC主要用于相同CPU核内线程的过程调用,依赖异数OS 本地event组件,实现本地CPU核线程间快速调用,相比RPC,拥有最快的过程调用性能(IO密集型),每CPU核最大20M左右线程间调用性能,不能用于跨CPU核跨网络的过程调用。
RPC方案说明
1. RPC 跨核交换机模式
RPC 跨核交换机模式,此模式弥补LPC 不能支持跨CPU核调用模式,多路并发RPC(8代理,8存根)最大800W左右RPC调用性能,单路RPC 200W左右RPC调用性能,适用于混合计算密集型的IO应用,适用于多核分载计算压力,但IO性能不如LPC.
2.TCP直连模式
此模式为网络分布式环境提供RPC服务,由异数OS TCP协议栈来提供跨网络的RPC调用,最大每核400W调用性能左右。
3.TCP经纪人代理模式
经济人模式使用 织梦师-水母消息队列作为框架内核,相比TCP直连模式,优势是通过经纪人可以解耦Client Server的调用依赖,通过多消费者存根可以大大提高系统的可用性稳定性,消费者存根崩溃时并不会对生产者代理造成连带影响,劣势是,IO规模比直连模式大一倍,单broker最大RPC 调用性能在200W,具体架构原理图参见织梦师-水母消息队列。
相关RPC产品性能对比
数据来自网络,环境目标不同,选取目标产品最大性能值,成绩仅供参考。
引用的其他产品测试成绩
http://colobu.com/2018/01/31/benchmark-2018-spring-of-popular-rpc-frameworks/
https://blog.csdn.net/quuqu/article/details/79304614
| 测试特性 | 纤手 5000W LPC | 纤手 5000W RPC跨核 | 纤手 600W-RPC TCP直连 | 纤手 600W RPC TCP中间人 | go+stdrpc | thrift | dubbo |
|---|---|---|---|---|---|---|---|
| RPC最大调用性能 | 20M | 8M | 4M | 2M | 30W | 7W | 20W |
| 平均延迟 | 调用性能/链接数量 | 调用性能/链接数量 | 调用性能/链接数量 | 调用性能/链接数量 | 10ms+调用性能/链接数量 | 10ms+调用性能/链接数量 | 10ms+调用性能/链接数量 |
| 最小延迟 | <1us | 10us | 10us | 10us | 10ms | 10ms | 10ms |
异数OS 织梦师-纤手(二)-- LPC RPC篇的更多相关文章
- 异数OS 织梦师-云(五)-- 容器服务化,绿色拯救未来。
. 异数OS 织梦师-云(五)– 容器服务化,绿色拯救未来. 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652 ...
- 异数OS 织梦师-水桶(三)-- RAM共享存储方案
. 异数OS 织梦师-水桶(三)– RAM共享存储方案 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455 ...
- 异数OS 织梦师-Xnign(四)-- 挑战100倍速Nginx,脚踩F5硬件负载均衡
. 异数OS 织梦师-Xnign(四)– 挑战100倍速Nginx,脚踩F5硬件负载均衡 本文来自异数OS社区 github: https://github.com/yds086/HereticOS ...
- 异数OS 织梦师-水母(一)--消息队列篇
异数OS 织梦师-水母(一)–消息队列篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 异数O ...
- 异数OS TCP协议栈测试(二)--短连接篇
异数OS TCP协议栈测试(二)--短连接篇 本文来自异数OS社区 github: 异数OS-织梦师(消息中间件)群: 476260389 测试目标 TCP 短链接IO性能测试,Client Se ...
- 异数OS TCP协议栈测试(一)--数据传输篇
异数OS TCP协议栈测试(一)--数据传输篇 本文来自异数OS社区 github: 异数OS-织梦师(消息中间件)群: 476260389 测试目标 数据传输IO性能测试,主要是建立连接后测试收 ...
- 异数OS国产CPU平台移植项目需求分析
异数OS国产CPU平台移植项目需求分析 目录 异数OS国产CPU平台移植项目需求分析 项目立项背景 项目需求分析 异数OS性能指标简介 1.TCP协议栈性能测试 2.异数OS-织梦师-水母 消息队列性 ...
- 异数OS-星星之火(二)--远程实验室注册开放
异数OS-星星之火(二) 远程实验室注册开放 异数os-织梦师云 未来操作系统技术远程实验室预计9月中旬开放,提供异数os用户学习研究测试服务,目前在做容器化多租户环境改造,先开放会员预注册通道,有需 ...
- 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门
. 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...
随机推荐
- @RequestBody、@ResponseBody注解是如何将输入输出转换成json的
@RequestBody.@ResponseBody注解,可以直接将输入解析成Json.将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器和服务器通过交换原始文本进行通信,而这里其 ...
- webpack4.0基本配置,超简单!
最近复习了一下webpack,使用的是4.0版本. 下图是基本目录结构,最后留有代码地址,有兴趣可以去看看. 直接上代码(依赖未完全使用): 项目的所有依赖都可以安装,每个都有详细的注释.] cons ...
- vue-learning:14 - js - new Vue(options)中option
new Vue(options)中option 2019-4-14 Vue的核心是数据驱动,在template中实现视图逻辑,在javascript中实现业务逻辑.要通过模板template将数据显示 ...
- git 通过 SublimeMerge 处理冲突
在使用 Git 的时候,如果是多个小伙伴开发,那么如果同时修改一个文件将出现冲突.也就是在自动合并的时候不知道使用哪个代码才对,此时就需要合并工具的协助.我找了很久发现 SublimeMerge 是界 ...
- Ubuntu安装微信,解决deepin“版本过低”或NO_PUBKEY问题
在搜索引擎搜索Ubuntu安装微信,最多的结果是通过deepin安装 但是里面使用的deepin-for-ubuntu 安装之后微信扫码会提示版本过低 直接安装deepin.com.wechat_2. ...
- 百度DMA+小度App的蓝牙语音解决方案技术难点解析
前记 你平时在商场看到的语音助手,看起来非常的简单,其实,这个小小语音助手的背后,是一个非常的复杂的技术支撑.从前端到后端的技术依次是:前端语音降噪技术,高效的音频编解码技术,蓝牙双模技术,DMA ...
- DEVOPS技术实践_09:Jenkins多分支管道
简介 多分支的管道是在jenkins2.x中新增的功能 . 多分支管道允许你针对分布式的控制器的每个分支创建一个管道. 下图是对它的一个描述.使用jenkinsfile去创建多分支的管道,jenkin ...
- spring boot(三)Junit 测试controller
Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法 一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期 ...
- 【学习】调用iframe中的方法
当页面中有iframe时,想在主页面调用iframe中的方法,可以用contentWindow属性.但具体用时还有一点要注意,就是必须等页面加载完成才可以,否则会报错找不到函数. 例: 父页面: &l ...
- 《带你装B,带你飞》pytest成神之路2- 执行用例规则和pycharm运行的三种姿态
1. 简介 今天北京下的雪好大好美啊!!!哎呀,忘记拍照片了,自己想象一下吧.言归真传,今天还是开始pytest的学习和修炼,上一篇写完后群里反响各式各样的,几家欢乐几家愁,有的高兴说自己刚好要用到了 ...