XXL-RPC v1.4.2,分布式服务框架

XXL-JOB 正在角逐 “2019年度最受欢迎中国开源软件”,期待您宝贵的一票!
投票连接html

Release Notes

  • 一、长连心跳保活:客户端周期性发送心跳请求给服务端保活;服务端连续三次未收到心跳时,销毁链接;
  • 二、服务线程优化,支持自定义线程参数;
  • 三、API重构:初始化枚举改成接口实例,方便扩展;
  • 四、代码优化,ConcurrentHashMap变量类型改成ConcurrentMap,避免因不一样版本实现不一样致使的兼容性问题;
  • 五、Netty Http客户端优化,识别并过滤非法响应数据;
  • 六、通信方案收敛:主推Netty和Netty_Http,移除Mina和Jetty内置扩展,若有需求自行扩展维护;
  • 七、序列化方案收敛:主推HESSIAN和HESSIAN1,移除protostuff、KRYO、JACKSON内置扩展,若有需求自行扩展维护;
  • 八、升级依赖版本,如netty/mina/hessian/jackson/zookeeper等;

简介

XXL-RPC 是一个分布式服务框架,提供稳定高性能的RPC远程服务调用功能。拥有"高性能、分布式、注册中心、负载均衡、服务治理"等特性。现已开放源代码,开箱即用。nginx

输入图片说明

特性

  • 一、快速接入:接入步骤很是简洁,两分钟便可上手;
  • 二、服务透明:系统完整的封装了底层通讯细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性;
  • 三、多调用方案:支持 SYNC、ONEWAY、FUTURE、CALLBACK 等方案;
  • 四、多通信方案:支持 TCP 和 HTTP 两种通信方式进行服务调用;其中 TCP 提供可选方案 NETTY 或 MINA ,HTTP 提供可选方案 NETTY_HTTP 或 Jetty;
  • 五、多序列化方案:支持 HESSIAN、HESSIAN一、PROTOSTUFF、KRYO、JACKSON 等方案;
  • 六、负载均衡/软负载:提供丰富的负载均衡策略,包括:轮询、随机、LRU、LFU、一致性HASH等;
  • 七、注册中心:可选组件,支持服务注册并动态发现;可选择不启用,直接指定服务提供方机器地址通信;选择启用时,内置可选方案:“XXL-REGISTRY 轻量级注册中心”(推荐)、“ZK注册中心”、“Local注册中心”等;
  • 八、服务治理:提供服务治理中心,可在线管理注册的服务信息,如服务锁定、禁用等;
  • 九、服务监控:可在线监控服务调用统计信息以及服务健康情况等(计划中);
  • 十、容错:服务提供方集群注册时,某个服务节点不可用时将会自动摘除,同时消费方将会移除失效节点将流量分发到其他节点,提升系统容错能力。
  • 十一、解决1+1问题:传统分布式通信通常经过nginx或f5作集群服务的流量负载均衡,每次请求在到达目标服务机器以前都须要通过负载均衡机器,即1+1,这将会把流量放大一倍。而XXL-RPC将会从消费方直达服务提供方,每次请求直达目标机器,从而能够避免上述问题;
  • 十二、高兼容性:得益于优良的兼容性与模块化设计,不限制外部框架;除 spring/springboot 环境以外,理论上支持运行在任何Java代码中,甚至main方法直接启动运行;
  • 1三、泛化调用:服务调用方不依赖服务方提供的API;

文档地址

技术交流