1 Star 0 Fork 2

大石头/NewLife.Net

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

经过十多年实战经验积累以及多方共同讨论,新生命团队制订了一种简单而又具有较好扩展性的RPC(Remote Procedure Call)协议。
全称:简易远程消息交换协议,简称: SRMP(Simple Remote Messaging Protocol)

SRMP目标场景

SRMP主要定位于以下场景:
1, 内网高速通信,大吞吐量(>100万tps)、低延迟(<1ms)
2, 外网远程通信,稳定可靠,海量连接(>10万)
3, 物联网硬件设备,容易简单实现协议

通信协议

基于新生命团队标准网络封包协议
标准网络封包协议:1 Flag + 1 Sequence + 2 Length + N Payload
1个字节标识位,标识请求、响应、错误、加密、压缩等;
1个字节序列号,用于请求响应包配对;
2个字节数据长度N,小端字节序,指示后续负载数据长度(不包含头部4个字节),解决粘包问题;
N个字节负载数据,数据内容完全由业务决定,最大长度65534=64k-2。

指令格式

默认采用Json序列化,utf-8编码

请求:S服务名 + N请求参数 响应:S服务名 + 4响应码 + N响应数据

标准指令例子如下:
请求,00012500 + 05 + Login + 1E + {user:"Stone",pass:"password"}
响应,80011D00 + 05 + Login + 00000000 + 12 + {data:"大石头"}
头部4字节,第一个字节最高位区分请求响应,第二个字节序列化,第三第四字节是长度,小字节序

网络库测试用例

X组件网络库一共经历了4代:
1,2005年,APM模型,反向代理、点卡服务端
2,2010年,SAEA模型,P2SP网络,单机7万连接
3,2014年,物联网云平台,ApiServer单机84.5万连接
4,2018年,高速RPC,ApiServer单机16万tps

说明文档

NewLife.Net——开始网络编程
NewLife.Net——构建可靠的网络服务
NewLife.Net——网络压测单机2266万tps
NewLife.Net——管道处理器解决粘包
NetCore版RPC框架NewLife.ApiServer

压力测试

NewLife.Net压力测试,峰值4.2Gbps,50万pps,消息大小24字节,消息处理速度2266万tps!
共集合20台高配ECS参与测试,主服务器带宽6Gbps、100万pps,16核心64G内存。另外19台共模拟400个用户连接,1316+632=400,每用户发送2000万个消息,服务端收到后原样返回。
Agent2 全貌

新生命开源项目矩阵

项目 年份 状态 .NET Core 说明
NewLife.Core 2002 维护中 日志、网络、RPC、序列化、缓存、多线程
XCode 2005 维护中 数据中间件,MySQL、SQLite、SqlServer、Oracle
NewLife.Cube 2010 维护中 Web魔方,权限基础框架,集成OAuth
NewLife.Redis 2017 维护中 Redis客户端,微秒级延迟,百亿级项目验证
NewLife.RocketMQ 2018 维护中 支持Apache RocketMQ和阿里云消息队列
NewLife.MQ 2016 维护中 轻量级消息队列
Stardust 2018 开发中 星尘,微服务平台,学习Dubbo
XAgent 2008 重构中 集群节点分布式计算平台,学习Hadoop
AntJob 2019 开发中 蚂蚁调度系统,大数据实时计算平台
NoDb 2017 开发中 NoSQL数据库,百万级读写性能,学习Redis+MongoDB
NewLife.Cache 2018 维护中 自定义缓存服务器
XLink 2016 维护中 物联网云平台
NewLife.Net 2005 维护中 网络库,千万级吞吐率,学习gRPC、Thrift
XCoder 2006 维护中 × 码神工具,开发者必备
XProxy 2005 维护中 产品级反向代理
XScript 2010 维护中 × C#脚本引擎
XTemplate 2008 维护中 × 模版引擎,学习TT
NewLife.DNS 2011 维护中 × DNS代理服务器
NewLife.CMX 2013 维护中 × 内容管理系统
SmartOS 2014 保密中 C++11 嵌入式操作系统,面向ARM Cortex-M芯片架构
GitCandy 2015 维护中 × Git管理系统
NewLife.MySql 2018 开发中 MySql驱动
X组件 .NET2.0 2002 存档中 .NET2.0 日志、网络、RPC、序列化、缓存、Windows服务、多线程
X组件 .NET4.0 2002 存档中 .NET4.0 日志、网络、RPC、序列化、缓存、Windows服务、多线程

新生命开发团队

新生命团队始于2002年,部分开源项目具有15年以上漫长历史,源码库保留有2010年以来所有修改记录,并一直保持更新,请确保获取得到最新版本源代码 网站:http://www.NewLifeX.com
国内:http://git.NewLifeX.com
国外:https://github.com/NewLifeX
博客:https://nnhy.cnblogs.com
QQ群:1600800/1600838

MIT License Copyright (c) 2018 新生命开发团队 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

单机吞吐2266万tps的网络通信框架 展开 收起
C#
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/nnhy/NewLife.Net.git
git@gitee.com:nnhy/NewLife.Net.git
nnhy
NewLife.Net
NewLife.Net
master

搜索帮助

A270a887 8829481 3d7a4017 8829481