百亿级企业级 RPC 框架开源了!

  • 时间:
  • 浏览:2
  • 来源:大发uu快3_uu快3开奖历史_大发uu快3开奖历史

今天给朋友介绍给一款性能卓越的 RPC 开源框架,其作者只是我我推荐每个 Java 应用程序员都应该看的《Java 生态核心知识点分类整理》的原作者张玉龙。

说实话我第一次看得人这名资料的过后 ,就感觉作者是一位真正的技术爱好者,过后 通过朋友介绍终于认识了他。交谈之中得知他在美团工作,最初和朋友一块儿分类整理这份资料的初衷是为了面试,估计每天还要面试太满的应聘者,这份资料成了助手。强烈建议没法看这份资料的同学好习下,作为 Java 生态知识体系构建也是一份不错的资源。

过后 得知业余时间他在研发一款开源的 RPC 开源框架,但会 经过测试可支持百亿级别的调用,但会 于近期终于完成推出 1.0 版本。这款开源软件名字叫做 Koalas,源代码地址:koalas-rpc,下面对这款开源软件做完整篇 介绍,内容来源于 Koalas 。

Koalas 介绍

企业生产级百亿日 PV 高可用可拓展的 RPC 框架。理论上并发数量接近服务器带宽,客户端采用 thrift 协议,服务端支持 netty 和 thrift 的 TThreadedSelectorServer 半同步半异步应用程序模型,支持动态扩容,服务上下线,权重动态,可用性配置,页面流量统计,支持 trace 跟踪等,火山岩石石接入 cat 支持数据大盘展示等,持续为我个人 以及中小型公司提供可靠的 RPC 框架技术方案。

Thrift 是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作有一一个多 远程过程调用(RPC)框架来使用,是由 Facebook 为“大规模跨语言服务开发”而开发的。

怎样叫 koalas

树袋熊英文翻译,希望考拉 RPC 给什么不太喜欢动手我个人 去造轮子的人提供可靠的 RPC 使用环境。

怎样要写这名 RPC

市面上常见的 RPC 框架所以,grpc,motan,dubbo 等,但会 随着太满的元素加入,多样化的分类整理等因素似使得什么框架和 spring 一样,我其实号称是轻量级,但会 用起来却是让朋友很蹩脚,几滴 的配置,多样化的 API 设计,我我其实,朋友根本用不上什么东西!!!

我也算得上是在所以个互联网企业厮杀过,见过所以所以的结构 RPC 框架,某些优秀的设计我不想 非常赞赏,有一天我经常想着,怎样不对什么设计原型进行聚合归类,于是我个人 搞一套【轻量级】 RPC 框架呢,于是利用业余时间开发此项目,希望源码对朋友对认识 RPC 框架起到推进的作用。

技术栈

  • thrift 0.8.0
  • spring-core-4.2.5,spring-context-4.2.5,spring-beans-4.2.5
  • log4j,slf4j
  • org.apache.commons(v2.0+)
  • io.netty4
  • fastJson
  • zookeeper
  • 点评cat(V3.0.0+ 做数据大盘统计上报等使用,可不配置)
  • AOP,反射代理等

技术架构

Koalas 架构图

序列化

考察了所以个序列化组件,其中包括jdk原生,kryo、hessian、protoStuff,thrift,json等,最终选则了Thrift,愿因如下:原生JDK序列化反序列化带宽堪忧,其序列化内容太过全面kryo和hessian,json相对来说比原生JDK强某些,但会 对跨语言支持一般,所以舍弃了,最终想在protoBuf和Thrift协议上端选则一套框架,这名框架很相通,支持跨语言,还要静态编译等等。但会 protoBuf不带RPC服务,本着提供多套服务端模式(thrift rpc,netty)的情况报告下,最终选则了Thrift协议。

IO应用程序模型

原生socket还还要模拟出简单的RPC框架,但会 对于大规模并发,要求吞吐量的系统来说,也就算得上是有一一个多 demo级别的,所以BIO肯定是不考虑了,NIO的模型在序列化技术选型的过后 过后 说了,Thrift一种支持所以个io应用程序模型,同步,异步,半同步异步等(SimpleServer,TNonblockingServer,THsHaServer,TThreadedSelectorServer,TThreadPoolServer),其中吞吐量最高的肯定是半同步半异步的IO模TThreadedSelectorServer了,具体愿因朋友可自行google,这次不做多的阐述,选则好了模型过后 ,发现thrift居然只是我神器一样的地处,再一想,对于服务端来说,IO模型怎样能少得了Netty啊,所以下决心也要支持Netty,但会 很遗憾Netty目前没法对Thrift的序列化解析,拆包粘包的处里,但会 有protoBuf,和http协议的封装,怎样办,我个人 在netty上写对thrift的支持呗,我其实工作量大了某些,但会 一想netty不只是我干这名事儿的嘛- -!

服务发现

支持集群的RPC框架上端,像dubbo,过后 是某些三方框架,对服务发现都进行的封装,没法自研RPC句子,服务发现就要我个人 来写了,没法简单小巧容易上手的zookeeper肯定是首选了。

内容展示

实际性能压测

8C 16G mac 开发本,单机 111500 次请求耗时截图

10w 次请求,至少耗时 12s,平均 qps 在11500左右,在集群环境下会有不错的性能表现

数据大盘展示

koalas2.0 过后 接入了 cat 服务,cat 服务支持 qps 统计,可用率,tp90line,tp99line,富有自定义监控报警等,接入效果图

富有的可视参数,流量统计,日,周,月报表展示等。

链路跟踪

对 RPC 服务来说,系统间的调用和排查异常接口,选则耗时代码是非常重要的,假使 接入了 cat,koalsa-rpc 火山岩石石的支持链路跟踪,一切尽在眼前 !

最后

作者非常具有技术情怀,在聊天中说就剩这点爱好了,要坚持下去。听了这句话啥有的是说了,点击下方链接,先 Star 为敬。

https://gitee.com/a1234567891/koalas-rpc

猜你喜欢

RIBA斯特林大奖——五花八门的建筑奖项

核心提示:英国皇家建筑师法学会斯特林奖是英国优秀建筑奖。它的命名是建筑师詹姆斯·斯特林(JamesStirling,1926-1992),每年由英国皇家建筑师法学会(RIBA)

2019-12-07

住建部:安徽8家建筑业企业资质申报弄虚作假

据住房和城乡建设部网站消息,住建部办公厅日前发文通报安徽明宏生态科技有限公司等8家建筑业企业资质申报弄虚作假的行为。原文如下。住房城乡建设部办公厅关于安徽明宏生态科技有限公司等

2019-12-07

任天堂上线“黄金点数”系统,点数可抵现金

IT之家3月6日消息 今日,任天堂否认了一项全新系统:MyNintendo黄金点数,点数还须要在购物时折抵一定金额。IT之家小编了解到,用户通过任天堂eShop以及官方网站购买

2019-12-07

《侠盗猎车5》受热捧 杂志再次曝光新图

关于亲戚亲戚朋友  |  加入亲戚亲戚朋友  |  意见反馈  |  招聘信息  |  商务媒体协作|  游戏库列表温馨提示,适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康

2019-12-07

喜憂參半/曼城逆轉藍車折阿古路

圖:阿古路(左)因傷退下火線美聯社【大公報訊】據ESPNFC報道:曼城於昨晨的英超聯「雙藍大戰」,憑奇雲迪布尼和馬列斯上半場各入1球,主場以2:1反勝由尼高路簡迪先拔頭籌的「藍

2019-12-07