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

上传者: 42110533 | 上传时间: 2021-08-30 21:55:49 | 文件大小: 183KB | 文件类型: ZIP
一:项目介绍 koalas-RPC 个人作品,提供大家交流学习,有意见请私信,欢迎拍砖。客户端采用thrift协议,服务端支持netty和thrift的TThreadedSelectorServer半同步半异步线程模型,支持动态扩容,服务上下线,权重动态,可用性配置,页面流量统计等,QPS统计,TP90,TP99,TP95等丰富可视化数据,持续为个人以及中小型公司提供可靠的RPC框架技术方案。 1:为什么要写这个RPC 市面上常见的RPC框架很多,grpc,motan,dubbo等,但是随着越来越多的元素加入,复杂的架构设计等因素似使得这些框架和spring一样,虽然号称是轻量级,但是用起来却是让我们很蹩脚,大量的配置,繁杂的API设计,其实,我们根本用不上这些东西!!! 我也算得上是在很多个互联网企业厮杀过,见过很多很多的内部RPC框架,有些优秀的设计让我非常赞赏,有一天我突然想着,为什

文件下载

资源详情

[{"title":"( 99 个子文件 183KB ) koalas-rpc:企业生产级百亿日PV高可用可拓展的RPC框架。理论上并发数量接近服务器带宽,客户端采用thrift协议,服务端支持netty和thrift的TThreadedSelectorServer半同步半异步线程模型,支持动态扩容,服务上下线,权重动态,可用性配置,泛化调用,页面流量统计,泛化调用等,支持trace跟踪等,天然接入cat支持数据大盘展示等,持续为个人以及中小型公司提供可靠的RPC框架技术方案-源码","children":[{"title":"koalas-rpc-master","children":[{"title":".gitignore <span style='color:#111;'> 593B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"main","children":[{"title":"resources","children":[{"title":"META-INF","children":[{"title":"spring.handlers <span style='color:#111;'> 57B </span>","children":null,"spread":false},{"title":"spring.schemas <span style='color:#111;'> 61B </span>","children":null,"spread":false},{"title":"koalas-rpc.xsd <span style='color:#111;'> 5.25KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"client","children":[{"title":"proxyfactory","children":[{"title":"KoalasClientProxy.java <span style='color:#111;'> 23.55KB </span>","children":null,"spread":false}],"spread":true},{"title":"cluster","children":[{"title":"Icluster.java <span style='color:#111;'> 380B </span>","children":null,"spread":false},{"title":"impl","children":[{"title":"DirectClisterImpl.java <span style='color:#111;'> 4.51KB </span>","children":null,"spread":false},{"title":"AbstractBaseIcluster.java <span style='color:#111;'> 2.67KB </span>","children":null,"spread":false},{"title":"RandomLoadBalancer.java <span style='color:#111;'> 1.11KB </span>","children":null,"spread":false},{"title":"AbstractLoadBalancer.java <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"ZookeeperClusterImpl.java <span style='color:#111;'> 4.48KB </span>","children":null,"spread":false}],"spread":true},{"title":"ILoadBalancer.java <span style='color:#111;'> 244B </span>","children":null,"spread":false},{"title":"ServerObject.java <span style='color:#111;'> 812B </span>","children":null,"spread":false},{"title":"RemoteServer.java <span style='color:#111;'> 2.04KB </span>","children":null,"spread":false}],"spread":true},{"title":"invoker","children":[{"title":"LocalMockInterceptor.java <span style='color:#111;'> 820B </span>","children":null,"spread":false},{"title":"KoalasMethodInterceptor.java <span style='color:#111;'> 19.26KB </span>","children":null,"spread":false}],"spread":true},{"title":"async","children":[{"title":"ReleaseResourcesKoalasAsyncCallBack.java <span style='color:#111;'> 2.82KB </span>","children":null,"spread":false},{"title":"KoalasAsyncCallBack.java <span style='color:#111;'> 3.12KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"server","children":[{"title":"domain","children":[{"title":"ErrorType.java <span style='color:#111;'> 181B </span>","children":null,"spread":false}],"spread":true},{"title":"KoalasServerPublisher.java <span style='color:#111;'> 2.07KB </span>","children":null,"spread":false},{"title":"KoalasDefaultThreadFactory.java <span style='color:#111;'> 1.24KB </span>","children":null,"spread":false},{"title":"config","children":[{"title":"AbstractKoalsServerPublisher.java <span style='color:#111;'> 7.39KB </span>","children":null,"spread":false},{"title":"ZookServerConfig.java <span style='color:#111;'> 2.39KB </span>","children":null,"spread":false}],"spread":true},{"title":"IkoalasServer.java <span style='color:#111;'> 195B </span>","children":null,"spread":false}],"spread":true},{"title":"transport","children":[{"title":"TKoalasFramedTransport.java <span style='color:#111;'> 11.03KB </span>","children":null,"spread":false}],"spread":true},{"title":"exceptions","children":[{"title":"RSAException.java <span style='color:#111;'> 481B </span>","children":null,"spread":false},{"title":"OutMaxLengthException.java <span style='color:#111;'> 526B </span>","children":null,"spread":false}],"spread":true},{"title":"utils","children":[{"title":"KoalasThreadedSelectorWorkerExcutorUtil.java <span style='color:#111;'> 1.44KB </span>","children":null,"spread":false},{"title":"KoalasRsaUtil.java <span style='color:#111;'> 11.43KB </span>","children":null,"spread":false},{"title":"KoalasAopUtil.java <span style='color:#111;'> 2.25KB </span>","children":null,"spread":false},{"title":"KoalasExceptionUtil.java <span style='color:#111;'> 506B </span>","children":null,"spread":false},{"title":"IPUtil.java <span style='color:#111;'> 2.06KB </span>","children":null,"spread":false},{"title":"TraceThreadContext.java <span style='color:#111;'> 544B </span>","children":null,"spread":false},{"title":"KoalasRegexUtil.java <span style='color:#111;'> 312B </span>","children":null,"spread":false}],"spread":true},{"title":"parser","children":[{"title":"KoalasBeanDefinitionParser.java <span style='color:#111;'> 15.21KB </span>","children":null,"spread":false},{"title":"KoalasBeanHandler.java <span style='color:#111;'> 877B </span>","children":null,"spread":false},{"title":"KoalasAnnotationBean.java <span style='color:#111;'> 16.04KB </span>","children":null,"spread":false}],"spread":true},{"title":"poolfactory","children":[{"title":"KoalasPoolableObjectFactory.java <span style='color:#111;'> 6.05KB </span>","children":null,"spread":false}],"spread":true},{"title":"thrift","children":[{"title":"ThriftServer.java <span style='color:#111;'> 6.09KB </span>","children":null,"spread":false},{"title":"Invocation.java <span style='color:#111;'> 414B </span>","children":null,"spread":false},{"title":"KoalasThreadedSelectorServer.java <span style='color:#111;'> 14.55KB </span>","children":null,"spread":false},{"title":"KoalasAbstractNonblockingServer.java <span style='color:#111;'> 32.05KB </span>","children":null,"spread":false}],"spread":true},{"title":"generic","children":[{"title":"GenericService.java <span style='color:#111;'> 28.63KB </span>","children":null,"spread":false},{"title":"GenericRequest.java <span style='color:#111;'> 21.42KB </span>","children":null,"spread":false},{"title":"GenericServiceImpl.java <span style='color:#111;'> 5.43KB </span>","children":null,"spread":false}],"spread":false},{"title":"netty","children":[{"title":"initializer","children":[{"title":"NettyServerInitiator.java <span style='color:#111;'> 1.15KB </span>","children":null,"spread":false}],"spread":false},{"title":"hanlder","children":[{"title":"KoalasHandler.java <span style='color:#111;'> 21.53KB </span>","children":null,"spread":false},{"title":"KoalasDecoder.java <span style='color:#111;'> 1.48KB </span>","children":null,"spread":false},{"title":"KoalasEncoder.java <span style='color:#111;'> 565B </span>","children":null,"spread":false}],"spread":false},{"title":"NettyServer.java <span style='color:#111;'> 5.58KB </span>","children":null,"spread":false}],"spread":false},{"title":"heartbeat","children":[{"title":"impl","children":[{"title":"HeartbeatServiceImpl.java <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false}],"spread":false},{"title":"service","children":[{"title":"HeartbeatService.java <span style='color:#111;'> 30.09KB </span>","children":null,"spread":false}],"spread":false},{"title":"request","children":[{"title":"HeartBeat.java <span style='color:#111;'> 16.76KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"annotation","children":[{"title":"KoalasClient.java <span style='color:#111;'> 1.71KB </span>","children":null,"spread":false},{"title":"KoalasServer.java <span style='color:#111;'> 721B </span>","children":null,"spread":false}],"spread":false},{"title":"protocol","children":[{"title":"KoalasBinaryProtocol.java <span style='color:#111;'> 15.97KB </span>","children":null,"spread":false},{"title":"KoalasTrace.java <span style='color:#111;'> 17.08KB </span>","children":null,"spread":false}],"spread":false},{"title":"register","children":[{"title":"ZookeeperClient.java <span style='color:#111;'> 19.63KB </span>","children":null,"spread":false},{"title":"ZookeeperServer.java <span style='color:#111;'> 5.75KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"test","children":[{"title":"resources","children":[{"title":"META-INF","children":[{"title":"app.properties <span style='color:#111;'> 21B </span>","children":null,"spread":false}],"spread":true},{"title":"xml","children":[{"title":"client","children":[{"title":"koalas-client.xml <span style='color:#111;'> 1.07KB </span>","children":null,"spread":false},{"title":"koalas-api.xml <span style='color:#111;'> 1.48KB </span>","children":null,"spread":false}],"spread":true},{"title":"server","children":[{"title":"koalas-server-thrift.xml <span style='color:#111;'> 2.81KB </span>","children":null,"spread":false},{"title":"koalas-server-netty.xml <span style='color:#111;'> 2.20KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"log4j.properties <span style='color:#111;'> 1.10KB </span>","children":null,"spread":false},{"title":"annotation","children":[{"title":"client","children":[{"title":"koalas-client.xml <span style='color:#111;'> 1.08KB </span>","children":null,"spread":false},{"title":"koalas-api.xml <span style='color:#111;'> 559B </span>","children":null,"spread":false}],"spread":true},{"title":"server","children":[{"title":"koalas-server.xml <span style='color:#111;'> 1004B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"xml","children":[{"title":"client","children":[{"title":"ClientRunAsync.java <span style='color:#111;'> 1.03KB </span>","children":null,"spread":false},{"title":"ThriftNative.java <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"ClientRunSync.java <span style='color:#111;'> 2.97KB </span>","children":null,"spread":false},{"title":"ThriftNativeServer.java <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false},{"title":"GenericApi.java <span style='color:#111;'> 1.44KB </span>","children":null,"spread":false},{"title":"ThriftNativeClient.java <span style='color:#111;'> 4.01KB </span>","children":null,"spread":false}],"spread":true},{"title":"server","children":[{"title":"ServerRunThrift.java <span style='color:#111;'> 482B </span>","children":null,"spread":false},{"title":"ServerRunNetty.java <span style='color:#111;'> 481B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"thrift","children":[{"title":"domain","children":[{"title":"WmCreateAccountRespone.java <span style='color:#111;'> 14.41KB </span>","children":null,"spread":false},{"title":"KoalasRpcException1.java <span style='color:#111;'> 14.94KB </span>","children":null,"spread":false},{"title":"KoalasRpcException2.java <span style='color:#111;'> 14.94KB </span>","children":null,"spread":false},{"title":"KoalasRpcException.java <span style='color:#111;'> 14.90KB </span>","children":null,"spread":false},{"title":"WmCreateAccountRequest.java <span style='color:#111;'> 27.36KB </span>","children":null,"spread":false}],"spread":true},{"title":"xml","children":[{"title":"client","children":[{"title":"impl","children":[{"title":"TestServiceAsync.java <span style='color:#111;'> 8.32KB </span>","children":null,"spread":false},{"title":"TestServiceSync.java <span style='color:#111;'> 5.36KB </span>","children":null,"spread":false},{"title":"KoalasAop.java <span style='color:#111;'> 619B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"server","children":[{"title":"impl","children":[{"title":"WmCreateAccountServiceImpl.java <span style='color:#111;'> 6.27KB </span>","children":null,"spread":false},{"title":"KoalasAop.java <span style='color:#111;'> 592B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"service","children":[{"title":"WmCreateAccountService.java <span style='color:#111;'> 374.55KB </span>","children":null,"spread":false}],"spread":true},{"title":"annotation","children":[{"title":"client","children":[{"title":"impl","children":[{"title":"TestServiceAsync.java <span style='color:#111;'> 2.62KB </span>","children":null,"spread":false},{"title":"TestServiceSync.java <span style='color:#111;'> 1.95KB </span>","children":null,"spread":false},{"title":"KoalasAop.java <span style='color:#111;'> 546B </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"server","children":[{"title":"impl","children":[{"title":"WmCreateAccountServiceNettyImpl.java <span style='color:#111;'> 7.33KB </span>","children":null,"spread":false},{"title":"WmCreateAccountServiceThriftImpl.java <span style='color:#111;'> 7.24KB </span>","children":null,"spread":false},{"title":"KoalasAop.java <span style='color:#111;'> 755B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true},{"title":"annotation","children":[{"title":"client","children":[{"title":"ClientRunAsync.java <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"ClientRunSync.java <span style='color:#111;'> 1.24KB </span>","children":null,"spread":false}],"spread":true},{"title":"server","children":[{"title":"ServerRun.java <span style='color:#111;'> 483B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 11.09KB </span>","children":null,"spread":false},{"title":"pom.xml <span style='color:#111;'> 10.50KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 40.05KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明