# xxl-rpc **Repository Path**: JiangBeiQingYi/xxl-rpc ## Basic Information - **Project Name**: xxl-rpc - **Description**: A distributed service communication RPC framework.(分布式服务通讯框架XXL-RPC) - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: http://www.xuxueli.com/xxl-rpc/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 300 - **Created**: 2018-10-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

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 - [中文文档](http://www.xuxueli.com/xxl-rpc/) ## 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 - [社区交流](http://www.xuxueli.com/page/community.html) ## Contributing Contributions are welcome! Open a pull request to fix a bug, or open an [Issue](https://github.com/xuxueli/xxl-rpc/issues/) to discuss a new feature or change. 欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 [Issue](https://github.com/xuxueli/xxl-rpc/issues/) 讨论新特性或者变更。 ## 接入登记 更多接入的公司,欢迎在 [登记地址](https://github.com/xuxueli/xxl-rpc/issues/2 ) 登记,登记仅仅为了产品推广。 ## 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](http://www.xuxueli.com/page/donate.html ) 无论金额多少都足够表达您这份心意,非常感谢 :) [前往捐赠](http://www.xuxueli.com/page/donate.html )