/xxl-rpc

A high performance, distributed RPC framework.(分布式服务框架XXL-RPC)

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

XXL-RPC

XXL-RPC, A high performance, distributed RPC framework.
-- Home Page --

Introduction

XXL-RPC is a high performance, distributed RPC framework.Provides a stable and high performance RPC function. Features such as "high-performance、distributed、service-registry、soft-loading、service-governance" Now, it's already open source, real "out-of-the-box".

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

Documentation

Features

“XXL-RPC” 特性:

  • 1、快速接入:接入步骤非常简洁,两分钟即可上手;
  • 2、服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性;
  • 3、多调用方案:支持 SYNC、ONEWAY、FUTURE、CALLBACK 等方案;
  • 4、多通讯方案:支持 TCP 和 HTTP 两种通讯方式进行服务调用;其中 TCP 提供可选方案 NETTY 或 MINA ,HTTP 提供可选方案 Jetty;
  • 5、多序列化方案:支持 HESSIAN、HESSIAN1、PROTOSTUFF、JSON 等方案;
  • 6、软负载均衡及容错:服务提供方集群注册时,在使用软负载算法进行流量分发;
  • 7、注册中心:可选组件,支持服务注册并动态发现;可选择不启用,直接指定服务提供方机器地址通讯;选择启用时,原生提供多种开箱即用的注册中心可选方案,包括:“XXL-RPC原生轻量级注册中心”、“ZK注册中心”、“Local注册中心”等;
  • 8、服务治理:提供服务治理中心,可在线管理注册的服务信息,如服务锁定、禁用等;
  • 9、服务监控:可在线监控服务调用统计信息以及服务健康状况等(计划中);
  • 10、容错:服务提供方集群注册时,某个服务节点不可用时将会自动摘除,同时消费方将会移除失效节点将流量分发到其余节点,提高系统容错能力。
  • 11、解决1+1问题:传统分布式通讯一般通过nginx或f5做集群服务的流量负载均衡,每次请求在到达目标服务机器之前都需要经过负载均衡机器,即1+1,这将会把流量放大一倍。而XXL-RPC将会从消费方直达服务提供方,每次请求直达目标机器,从而可以避免上述问题;
  • 12、高兼容性:得益于优良的兼容性与模块化设计,不限制外部框架;除 spring/springboot 环境之外,理论上支持运行在任何Java代码中,甚至main方法直接启动运行;

“XXL-RPC原生轻量级注册中心” 特性:

  • 1、轻量级:基于DB与磁盘文件,只需要提供一个DB实例即可,无第三方依赖;
  • 2、实时性:借助内部广播机制,新服务上线、下线,可以在1s内推送给客户端;
  • 3、数据同步:注册中心内部10s会全量同步一次磁盘数据,清理无效服务,确保服务数据实时可用;
  • 4、性能:服务发现时仅读磁盘文件,性能非常高;服务注册、摘除时通过磁盘文件校验,防止重复注册操作;
  • 5、扩展性:可方便、快速的横向扩展,只需保证 "xxl-rpc-admin" 配置一致即可,可借助负载均衡组件如Nginx快速集群部署;
  • 6、多状态:服务内置三种状态:正常状态=支持动态注册、发现,服务注册信息实时更新;锁定状态=人工维护注册信息,服务注册信息固定不变;禁用状态=禁止使用,服务注册信息固定为空;
  • 7、跨语言:注册中心提供HTTP接口供客户端实用,语言无关,通用性更强;
  • 8、兼容性:“XXL-RPC原生轻量级注册中心”虽然为XXL-RPC设计,但是不限于XXL-RPC使用。兼容支持任何服务框架服务注册实用,如dubbo、springboot等;
  • 9、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现"XXL-RPC原生注册中心方案"产品开箱即用;

Communication

Contributing

Contributions are welcome! Open a pull request to fix a bug, or open an Issue to discuss a new feature or change.

欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。

接入登记

更多接入的公司,欢迎在 登记地址 登记,登记仅仅为了产品推广。

Copyright and License

This product is open source and free, and will continue to provide free community technical support. Individual or enterprise users are free to access and use.

  • Licensed under the GNU General Public License (GPL) v3.
  • Copyright (c) 2015-present, xuxueli.

产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。

Donate

No matter how much the amount is enough to express your thought, thank you very much :) To donate

无论金额多少都足够表达您这份心意,非常感谢 :) 前往捐赠