基于Protobuf的分布式高性能RPC框架——Navi-Pbrpc 二月 8, 2016 1 简介 Navi-pbrpc框架是一个高性能的远程调用RPC框架,使用netty4技术提供非阻塞.异步.全双工的信道,使用protobuf作为序列化协议,同时提供长.短连接模式,支持non-blocking和传统的blocking io,以及负载均衡,容错处理策略等,对于基于socket的分布式调用提供通信基础. 如果你的项目中需要高性能的RPC解决方案,那么navi-pbrpc可以帮助到你构建一个强大…
概述 首先这篇文章是要带大家来实现一个框架,听到框架大家可能会觉得非常高大上,其实这和我们平时写业务员代码没什么区别,但是框架是要给别人使用的,所以我们要换位思考,怎么才能让别人用着舒服,怎么样才能让我们的框架性能优异.通过自己写一个框架,我们能学到的有很多,能让我们脱离 CURD,在更高的层面上去思考. 目的 写这个框架最主要的目的是要让大家了解整个框架的设计思想和用到的技术,并不是让大家关注代码,当然我实现的代码一定不是完美的,还有很多需要改进的地方,希望大家不吝赐教,一起进步. 提前准备…
简介 Socean.RPC是一个.Net下的高性能RPC框架,框架以高性能.高稳定性为目标,底层基于socket,无第三方库引用,代码简洁,总代码量大约在2000行,框架性能较高,在普通PC上测试,长连接可达14w每秒的处理量,支持10000+长连接消息处理(客户端每100毫秒发1个短消息),内存和cpu占有率偏低 开发背景 好用的轮子太少,只能自己弄个了,希望能促进.Net社区的发展 框架特点 高性能.超稳定.支持异步.资源占用很小.代码简介.清晰易懂 使用介绍 server sample :…
gRPC是一个高性能.开源.通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架. gRPC基于HTTP/2标准设计,带来诸如双向流.流控.头部压缩.单TCP连接上的多复用请求等特性.这些特性使得其在移动设备上表现更好,更省电且节省空间占用. gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产.API现在也是很稳定的. 关于Java版本发布情况,大家阅读发布日志:https://github.com/g…
Twitter的RPC框架Finagle简介 Finagle是Twitter基于Netty开发的支持容错的.协议无关的RPC框架,该框架支撑了Twitter的核心服务.来自Twitter的软件工程师Jeff Smick撰文详细描述了该框架的工作原理和使用方式. 在Jeff Smick的博客文章中,介绍了Twitter的架构演进历程.Twitter面向服务的架构是由一个庞大的Ruby on Rails应用转化而来的.为了适应这种架构的变化,需要有一个高性能的.支持容错的.协议无关且异步的RPC框架…
GRPC 1.3.4 发布了,GRPC 是一个高性能.开源.通用的 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架. GRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多复用请求等特性.这些特性使得其在移动设备上表现更好,更省电且节省空间占用. 该版本是 gRPC Ruby 库的补丁版本: 修复空闲通道上的 connection breakage 总是导致下一个 RPC 失败并出现…
前言 RPC采用客户机/服务器模式实现两个进程之间的相互通信,socket是RPC经常采用的通信手段之一.当然,除了socket,RPC还有其他的通信方法:http.管道...网络开源的RPC框架也比较多,一个功能比较完善的RPC框架代码比较多,如何快速的从这些代码盲海中梳理清楚主要脉络,对于初学者来说比较困难,本文介绍之前自己实现的一个C++极简版的RPC框架(https://github.com/goyas/goya-rpc),代码只有100多行,希望尽量用少的代码来描述框架以减轻初学者的学…
前言 上一篇文章中我们已经知道了什么是 RPC 框架和为什么要做一个 RPC 框架了,这一章我们来从宏观上分析,怎么来实现一个 RPC 框架,这个框架都有那些模块以及这些模块的作用. 总体设计 在我们的整个框架里比较重要的几个模块: rpc-procotol: 既然是可插拔是框架,我们需要支持选择底层协议,这部分是通信协议相关的模块. rpc-spring: 我们的框架是基于 spring 开发的,这个模块是将我们的一些功能和 spring 整合起来,比如自动注入代理 bean,启动服务端 se…
注册中心代码使用 zookeeper 实现,我们通过图片来看看我们注册中心的架构. 首先说明, zookeeper 的实现思路和代码是参考架构探险这本书上的,另外在 github 和我前面配置文件中的 zookeeper 服务器是用的1个月免费适用的阿里云,大家也可以用它当测试用. 不多说,一次性给出注册中心全部代码. 客户端对应的注册中心接口 public interface RegisterCenter4Consumer { /** * 消费端初始化服务提供者信息本地缓存 */ public…
NET Core 3.0 使用gRPC 一.前言 在前一文 <ASP.NET Core 3.0 使用gRPC>中有提到 gRPC 支持双向流调用,支持实时推送消息,这也是 gRPC的一大特点,且 gRPC 在对双向流的控制支持上也是非常强大的. 二. 什么是 gRPC 流 gRPC 有四种服务类型,分别是:简单 RPC(Unary RPC).服务端流式 RPC (Server streaming RPC).客户端流式 RPC (Client streaming RPC).双向流式 RPC(Bi…