c#---Socean.Rpc之EasyProxy】的更多相关文章

目录 1.高性能RPC框架:Socean.RPC 2.Socean.RPC框架实测 3.Socean.Rpc之EasyProxy 简介 这几天给Socean.RPC加上了动态代理,简称EasyProxy,特点是性能高.稳定性好.使用简便 使用入门: 服务端 : 1.定义序列化器和消息处理器 public class RpcSerializer : Socean.Rpc.DynamicProxy.IRpcSerializer { public object Deserialize(string c…
目录1.高性能RPC框架:Socean.RPC 前言 经过一段时间的优化,Socean.RPC的性能又提高了一些,不过这差不多是socketAPM模型的极限了.本框架仅仅2000多行代码,无第三方框架引用,在双核PC上测试大约并发量13w.响应时间0.04ms,基本上实现了本框架的最初设计目的----用少量的代码实现一个高性能.高稳定性.高响应速度的RPC框架,不过跟其他RPC框架相比还少了动态代理这一块,先用常规序列化吧,以后应该会加上. 本次测试是在笔记本上运行的,CPU是i5 6200U(…
简介 Socean.RPC是一个.Net下的高性能RPC框架,框架以高性能.高稳定性为目标,底层基于socket,无第三方库引用,代码简洁,总代码量大约在2000行,框架性能较高,在普通PC上测试,长连接可达14w每秒的处理量,支持10000+长连接消息处理(客户端每100毫秒发1个短消息),内存和cpu占有率偏低 开发背景 好用的轮子太少,只能自己弄个了,希望能促进.Net社区的发展 框架特点 高性能.超稳定.支持异步.资源占用很小.代码简介.清晰易懂 使用介绍 server sample :…
这是一篇关于纯C++RPC框架的文章.所以,我们先看看,我们有什么? 1.一个什么都能干的C++.(前提是,你什么都干了) 2.原始的Socket接口,还是C API.还得自己去二次封装... 3.C++11,这是最令人兴奋的.有了它,才能够有这篇文章:否则,CORBA之类的才是唯一的选择.(因为需要代码生成) 那么,我们没有什么,或者需要什么? 1.一套完善的序列化框架:在不同的进程间传输数据,序列化是第一步,如何可靠且方便地将对象转化为二进制(或者其他格式),在对端则是如何正确且安全地将其从…
最近线上碰到一点小问题,分析其原因发现是出在对 RPC 使用上的一些细节掌握不够清晰导致.很多时候我们做业务开发会把 RPC 当作黑盒机制来使用,但若不对黑盒的工作原理有个基本掌握,也容易犯一些误用的微妙错误. 虽然曾经已经写过一篇<RPC 的概念模型与实现解析> 从概念模型和实现细节上讲述了 RPC 的原理,这一篇就从使用上的一些注意点来捋一捋吧. 同步 RPC 的调用通常为了方便使用,会被伪装成普通方法调用的形式.但实际二者之间存在巨大的差异,进程内的方法调用的时间量级是 ns(纳秒),而…
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络,从远程计算机程序上请求服务,而不必了解底层网络技术的协议.说的再直白一点,就是客户端在不必知道调用细节的前提之下,调用远程计算机上运行的某个对象,使用起来就像调用本地的对象一样.目前典型的RPC实现框架有:Thrift(facebook开源).Dubbo(alibaba开源)等等.RPC框架针对网络协议.网络I/O模型的封装是透明的,对于调用的客户端而言,它就认为自己在调用本地的一个对象.至…
运行环境,客户端一般编译为.Net 3.5 Unity兼容,服务端因为用了一些库,所以一般为4.0 或往上.同一份代码,建立拥有2个项目.客户端引用: WindNet.Client服务端引用: OpLog.Core WindNet.Web 然后服务端添加编译标记为SV 看代码: //PostSharp AOP标记 拥有此标记的方法将可以远程调用 [TypeProxy] public class LocalTest { //callback为必须,如果没有此方法,则不可进行远程调用 //远程调用模…
由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc.rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行google,这里只是做个简单的介绍.rpc的主要功能是让分布式系统的实现更为简单,为提供强大的远程调用而不损失本地调用语义的简洁性.为了实现这个目标,rpc框架需要提供一种透明调用机制让使用者不必显示区分本地调用还是远程调用.rpc架构涉及的组件如下: 客户方像调用本地方法一样去调用远程接口方法,R…
本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件基于J2SE 8开发,因此需要确保服务器上安装了JDK 8及以上版本,不依赖于任何额外需要独立安装和配置的依赖程序. 注:spider RPC 1.0.1版本之前基于JDK 1.7开发,最后改为了使用JDK  1.8主要是出于公司内部系统对接的考虑,使用了1.8新增的Parameter类,因为内部系统需要解析参数名. spider RPC中间件的核心设计初衷是像调用本地服务一样调用远程服务,能够灵活的…
在本人写的前一篇文章中,谈及有关如何利用Netty开发实现,高性能RPC服务器的一些设计思路.设计原理,以及具体的实现方案(具体参见:谈谈如何使用Netty开发实现高性能的RPC服务器).在文章的最后提及到,其实基于该方案设计的RPC服务器的处理性能,还有优化的余地.于是利用周末的时间,在原来NettyRPC框架的基础上,加以优化重构,本次主要优化改造点如下: 1.NettyRPC中对RPC消息进行编码.解码采用的是Netty自带的ObjectEncoder.ObjectDecoder(对象编码…