All Projects → Matrix6677 → Easyrpc

Matrix6677 / Easyrpc

Licence: apache-2.0
EasyRpc is a simple, high-performance, easy-to-use RPC framework based on Netty, ZooKeeper and ProtoStuff.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Easyrpc

Mrpc
🐿 netty,zookeeper,spring,kyro rpc framework.
Stars: ✭ 128 (+62.03%)
Mutual labels:  rpc, zookeeper, protobuf, netty
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (+24.05%)
Mutual labels:  protobuf, netty, zookeeper, rpc
Getty
a netty like asynchronous network I/O library based on tcp/udp/websocket; a bidirectional RPC framework based on JSON/Protobuf; a microservice framework based on zookeeper/etcd
Stars: ✭ 532 (+573.42%)
Mutual labels:  rpc, rpc-framework, protobuf, netty
Netty Stroll
RPC基础通信框架
Stars: ✭ 77 (-2.53%)
Mutual labels:  rpc, zookeeper, netty
Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+718.99%)
Mutual labels:  rpc, protobuf, netty
Netty Learning Example
🥚 Netty实践学习案例,见微知著!带着你的心,跟着教程。我相信你行欧。
Stars: ✭ 2,146 (+2616.46%)
Mutual labels:  rpc, protobuf, netty
Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+1636.71%)
Mutual labels:  rpc, rpc-framework, netty
rpc-spring-boot-starter
自定义rpc框架,支持Java序列化和protobuf序列化协议,多种负载均衡算法
Stars: ✭ 75 (-5.06%)
Mutual labels:  protobuf, netty, zookeeper
Mango
A high-performance, open-source java RPC framework.
Stars: ✭ 150 (+89.87%)
Mutual labels:  rpc, zookeeper, netty
mini-rpc
Spring + Netty + Protostuff + ZooKeeper 实现了一个轻量级 RPC 框架,使用 Spring 提供依赖注入与参数配置,使用 Netty 实现 NIO 方式的数据传输,使用 Protostuff 实现对象序列化,使用 ZooKeeper 实现服务注册与发现。使用该框架,可将服务部署到分布式环境中的任意节点上,客户端通过远程接口来调用服务端的具体实现,让服务端与客户端的开发完全分离,为实现大规模分布式应用提供了基础支持
Stars: ✭ 221 (+179.75%)
Mutual labels:  netty, zookeeper, rpc-framework
simple-rpc-plus
使用netty和zookeeper技术实现的远程调用框架
Stars: ✭ 16 (-79.75%)
Mutual labels:  netty, zookeeper, rpc
Rpc Fromscratch
🌈 从零开始设计一个轻量级分布式 RPC 框架,基于 Spring + Netty + Protostuff + Zookeeper
Stars: ✭ 106 (+34.18%)
Mutual labels:  rpc, zookeeper, netty
Whatsmars
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)🔥🔥🔥🔥🔥
Stars: ✭ 1,389 (+1658.23%)
Mutual labels:  rpc, rpc-framework, zookeeper
Simple Rpc
RPC with service discovery base on netty
Stars: ✭ 103 (+30.38%)
Mutual labels:  rpc, zookeeper, netty
Pudding
Pudding 是一款迷你级分布式服务框架
Stars: ✭ 24 (-69.62%)
Mutual labels:  netty, rpc, rpc-framework
srpc
一款轻量 高性能的RPC框架,基于netty,整合spring,支持注册中心,多种序列化,负载均衡等
Stars: ✭ 78 (-1.27%)
Mutual labels:  netty, zookeeper, rpc
Thunder
⚡️ Nepxion Thunder is a distribution RPC framework based on Netty + Hessian + Kafka + ActiveMQ + Tibco + Zookeeper + Redis + Spring Web MVC + Spring Boot + Docker 多协议、多组件、多序列化的分布式RPC调用框架
Stars: ✭ 204 (+158.23%)
Mutual labels:  rpc, zookeeper, netty
Nettyrpc
A simple RPC framework based on Netty, ZooKeeper and Spring
Stars: ✭ 1,975 (+2400%)
Mutual labels:  rpc-framework, zookeeper, netty
Mini Rpc
Spring + Netty + Protostuff + ZooKeeper 实现了一个轻量级 RPC 框架,使用 Spring 提供依赖注入与参数配置,使用 Netty 实现 NIO 方式的数据传输,使用 Protostuff 实现对象序列化,使用 ZooKeeper 实现服务注册与发现。使用该框架,可将服务部署到分布式环境中的任意节点上,客户端通过远程接口来调用服务端的具体实现,让服务端与客户端的开发完全分离,为实现大规模分布式应用提供了基础支持
Stars: ✭ 205 (+159.49%)
Mutual labels:  rpc-framework, zookeeper, netty
rony
Fast and Scalable RPC Framework
Stars: ✭ 41 (-48.1%)
Mutual labels:  protobuf, rpc, rpc-framework

EasyRpc

Build Status license

EasyRpc是基于Netty、ZooKeeper和ProtoStuff开发的一个简单易用,便于学习的RPC框架。


1 特性

  • 简单易用;
  • 注释完善,方便学习;
  • 低延迟,基于Netty 4;
  • 解决TCP粘包/拆包问题;
  • 支持非阻塞的同步/异步调用;
  • 基于ProtoStuff的对象序列化;
  • 完整的单元测试和JMH性能压测;
  • 基于ZooKeeper实现的服务注册和发现;
  • 仿Dubbo数据包结构,优化协议头仅20字节;
  • 支持4种负载均衡策略:随机、轮询、哈希、最佳响应;

2 总体设计

2.1 架构图

系统架构

2.2 系统时序

系统时序

2.3 主流程图

主流程

2.4 数据包结构

数据包结构

3 性能测试

吞吐量

平均耗时&随机取样

4 参考文献

[1]阮一峰.理解字节序[J/OL].阮一峰的网络日志,2016-11-22.

[2]猿码道.聊聊Linux 五种IO模型[J/OL].简书,2016.05.18.

[3]猿码道.聊聊同步、异步、阻塞与非阻塞[J/OL].简书,2016.05.18.

[4]科来网络.网络通讯协议[J/OL].科来网络,2019-01.01.

[5]此鱼不得水.Dubbo编码解码[J/OL].简书,2017-12-20.

[6]Newland.谈谈如何使用Netty开发实现高性能的RPC服务器[J/OL].博客园,2016-06-25.

[7]加多.谈谈Netty的线程模型[J/OL].并发编程网,2019-08-23.

[8]鲁小憨.怎样对 RPC 进行有效的性能测试[J/OL].简书,2018-02-02.

5 License

EasyRpc is under the Apache 2.0 license. See the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].