异数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平台。


与众不同的特性


  1. 简单靠谱的框架,使用阻塞线程模型,因此并发设计更加简单实用,不需要考虑异步并发带来的算法复杂度以及错误处理等问题。
  2. 海量并发调用特性,由于异数OS的线程开销很低,1亿线程仅需4G内存,因此可以更加随意的使用LPC RPC技术,而不需要考虑其成本代价,传统LPC RPC技术往往被宿主平台的CPU数量线程数量等限制,而只能选择集群扩充并发RPC容量,RPC并发容量保守测试提升1000倍。
  3. 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篇的更多相关文章

  1. 异数OS 织梦师-云(五)-- 容器服务化,绿色拯救未来。

    . 异数OS 织梦师-云(五)– 容器服务化,绿色拯救未来. 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652 ...

  2. 异数OS 织梦师-水桶(三)-- RAM共享存储方案

    . 异数OS 织梦师-水桶(三)– RAM共享存储方案 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455 ...

  3. 异数OS 织梦师-Xnign(四)-- 挑战100倍速Nginx,脚踩F5硬件负载均衡

    . 异数OS 织梦师-Xnign(四)– 挑战100倍速Nginx,脚踩F5硬件负载均衡 本文来自异数OS社区 github: https://github.com/yds086/HereticOS ...

  4. 异数OS 织梦师-水母(一)--消息队列篇

    异数OS 织梦师-水母(一)–消息队列篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 异数O ...

  5. 异数OS TCP协议栈测试(二)--短连接篇

    异数OS TCP协议栈测试(二)--短连接篇 本文来自异数OS社区 github:   异数OS-织梦师(消息中间件)群: 476260389 测试目标 TCP 短链接IO性能测试,Client Se ...

  6. 异数OS TCP协议栈测试(一)--数据传输篇

    异数OS TCP协议栈测试(一)--数据传输篇 本文来自异数OS社区 github:   异数OS-织梦师(消息中间件)群: 476260389 测试目标 数据传输IO性能测试,主要是建立连接后测试收 ...

  7. 异数OS国产CPU平台移植项目需求分析

    异数OS国产CPU平台移植项目需求分析 目录 异数OS国产CPU平台移植项目需求分析 项目立项背景 项目需求分析 异数OS性能指标简介 1.TCP协议栈性能测试 2.异数OS-织梦师-水母 消息队列性 ...

  8. 异数OS-星星之火(二)--远程实验室注册开放

    异数OS-星星之火(二) 远程实验室注册开放 异数os-织梦师云 未来操作系统技术远程实验室预计9月中旬开放,提供异数os用户学习研究测试服务,目前在做容器化多租户环境改造,先开放会员预注册通道,有需 ...

  9. 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门

    . 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...

随机推荐

  1. 2018-2-13-C#-解析-sln-文件

    title author date CreateTime categories C# 解析 sln 文件 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23 ...

  2. Redis内存回收机制

    为什么需要内存回收? 原因有如下两点: 在 Redis 中,Set 指令可以指定 Key 的过期时间,当过期时间到达以后,Key 就失效了. Redis 是基于内存操作的,所有的数据都是保存在内存中, ...

  3. vue 插件大全

    UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...

  4. dotnet 使用 System.CommandLine 写命令行程序

    在写命令行程序的时候,会遇到命令行解析的问题,以及参数的使用和规范化等坑.现在社区开源了命令行项目,可以帮助小伙伴快速开发命令行程序,支持自动的命令行解析和规范的参数 我写过一篇关于命令行解析的博客C ...

  5. 0029 定位:position(相对、绝对、固定、绝对定位盒子居中、z-index、绝对定位改变display属性)

    目标 理解 能说出为什么要用定位 能说出定位的4种分类 能说出四种定位的各自特点 能说出我们为什么常用子绝父相布局 应用 能写出淘宝轮播图布局 1. CSS 布局的三种机制 网页布局的核心 -- 就是 ...

  6. Rxjava2 介绍与详解实例

    目录 前言 RX介绍 Rx模式 Rx使用依赖: Rxjava的入门基础 1. Observable 2. Flowable 3. Single 4. Completable 5. Maybe 6. S ...

  7. The first day of Crawler learning

    使用BeautifulSoup解析网页 Soup = BeautifulSoup(urlopen(html),'lxml') Soup为汤,html为食材,lxml为菜谱 from bs4 impor ...

  8. lua字符串分割函数[适配中文特殊符号混合]

    lua的官方函数里无字符串分割,起初写了个简单的,随之发现如果是中文.字符串.特殊符号就会出现分割错误的情况,所以就有了这个zsplit. function zsplit(strn, chars) f ...

  9. 使用SparkSql进行表的分析与统计

    # 背景 ​ 我们的数据挖掘平台对数据统计有比较迫切的需求,而Spark本身对数据统计已经做了一些工作,希望梳理一下Spark已经支持的数据统计功能,后期再进行扩展. # 准备数据 在参考文献6中下载 ...

  10. 在Asp.Net Core中使用ModelConvention实现全局过滤器隔离

    从何说起 这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题.在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFil ...