# hulk-rpc **Repository Path**: wesley721/hulk-rpc ## Basic Information - **Project Name**: hulk-rpc - **Description**: 自定义高效rpc框架,不仅提供“分布式、负载均衡、注册中心、错误降级”等功能,而且对使用的协议、存储数据结构、工具进行了大量的优化,保证了效率。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-09-17 - **Last Updated**: 2022-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hulk-rpc #### 介绍 自定义高效rpc框架,不仅提供“分布式、负载均衡、注册中心、错误降级”等功能,而且对使用的协议、存储数据结构、工具进行了大量的优化,保证了效率。 #### 软件架构 1. jdk11 2. maven3.6 3. netty4.1.34 #### 框架特性 1. 快速接入:接入步骤非常简洁,两分钟即可上手; 2. 服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务; 3. 纯异步调用:采用jdk自带的Future进行封装,提供自带超时 4. 多通讯方案:支持 TCP 和 HTTP 两种通讯方式进行服务调用,均基于Netty实现; 5. 多序列化方案:支持PROTOSTUFF、KRYO、JSON 等方案; 6. 负载均衡/软负载:提供丰富的负载均衡策略,包括:轮询、随机、基于权重的轮询、基于权重的随机、一致性HASH等; 7. 注册中心:可选组件,支持服务注册并动态发现;可选择不启用,直接指定服务提供方机器地址通讯; 8. 容错:服务提供方集群注册时,某个服务节点不可用时将会自动摘除,同时消费方将会移除失效节点将流量分发到其余节点,提高系统容错能力。 9. 高兼容性:得益于优良的兼容性与模块化设计,不限制外部框架;除 spring/springboot 环境之外,理论上支持运行在任何Java代码中,甚至main方法直接启动运行 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request