XXL-RPC v1.2.2,分布式服务框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuxueli
V2EX    Java

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

  •  1
     
  •   xuxueli 2018-11-27 08:02:05 +08:00 2615 次点击
    这是一个创建于 2589 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Release Notes

    • 1、默认通讯方案切换为 Netty,可选方案依赖均调整为 provided 类型;提供强制依赖最小精简选型组合 "netty + hessian + 无注册中心(推荐采用:XXL-RPC 原生注册中心)";
    • 2、XXL-RPC 原生注册中心:底层抽象注册中心模块,并原生提供自研基于 DB 的注册中心,真正实现开箱即用,更轻量级、降低第三方依赖;至今 XXL-RPC 以提供三种注册中心具实现:"XXL-RPC 原生注册中心方案","ZK 方案","Local 方案";其中"XXL-RPC 原生注册中心方案"特性如下:
      • 轻量级:基于 DB 与磁盘文件,只需要提供一个 DB 实例即可,无第三方依赖;
      • 实时性:借助内部广播机制,新服务上线、下线,可以在 1s 内推送给客户端;
      • 数据同步:注册中心内部 10s 会全量同步一次磁盘数据,清理无效服务,确保服务数据实时可用;
      • 性能:服务发现时仅读磁盘文件,性能非常高;服务注册、摘除时通过磁盘文件校验,防止重复注册操作;
      • 扩展性:可方便、快速的横向扩展,只需保证 "xxl-rpc-admin" 配置一致即可,可借助负载均衡组件如 Nginx 快速集群部署;
      • 多状态:服务内置三种状态:正常状态=支持动态注册、发现,服务注册信息实时更新;锁定状态=人工维护注册信息,服务注册信息固定不变;禁用状态=禁止使用,服务注册信息固定为空;
      • 跨语言:注册中心提供 HTTP 接口供客户端实用,语言无关,通用性更强;
      • 兼容性:“ XXL-RPC 原生轻量级注册中心”虽然为 XXL-RPC 设计,但是不限于 XXL-RPC 使用。兼容支持任何服务框架服务注册实用,如 dubbo、springboot 等;
      • 容器化:提供官方 docker 镜像,并实时更新推送 dockerhub,进一步实现"XXL-RPC 原生注册中心方案"产品开箱即用;
    • 3、XXL-RPC 客户端适配"XXL-RPC 原生注册中心",可快速接入,只需要切换注册中心实现为 "NativeServiceRegistry" 即可,文档由专门章节介绍;
    • 4、注册中心启动参数位置调整,与注册中心实现关联;
    • 5、服务提供者参数优化,IP 为空时原生动态获取,核心参数启动时增强校验;
    • 6、注册模块 API 优化,改为批量模式进一步提升性能;
    • 7、文档增强,注册中心配置切换、通讯方案配置切换说明;
    • 8、IP 工具类优化,兼容 Inet6Address 格式地址;
    • 9、Netty 销毁逻辑优化;
    • 10、扩展第三方注册中心 ZK 底层逻辑优化,避免旧注册信息无法清理的问题;

    简介

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

    输入图片说明

    “ 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 原生注册中心方案"产品开箱即用;

    文档地址

    技术交流

    9 条回复    2018-11-28 06:44:38 +08:00
    hansonwang99
        1
    hansonwang99  
       2018-11-27 08:14:54 +08:00
    很棒
    xuxueli
        2
    xuxueli  
    OP
       2018-11-27 08:33:20 +08:00 via Android
    @hansonwang99 感谢支持!

    新版本原生提供注册中心,其实如若仅仅是服务注册,真的没必要单独安装软件,一个 web 应用就 OK 了,支持集群,横向扩展非常方便。
    sumahe
        3
    sumahe  
       2018-11-27 08:39:04 +08:00
    xxl 出品,很棒
    Variazioni
        4
    Variazioni  
       2018-11-27 09:57:51 +08:00
    支持一下。。
    居然在 v2 遇到作者本人了哈哈。。
    公司准备接入 xxl-job。最近正在研究呢。。
    linbiaye
        5
    linbiaye  
       2018-11-27 11:33:18 +08:00
    支持一发,
    xuxueli
        6
    xuxueli  
    OP
       2018-11-27 12:57:12 +08:00 via Android
    @sumahe
    @linbiaye
    @Variazioni

    Tks,多谢支持啊!
    huadi
        7
    huadi  
       2018-11-27 19:01:01 +08:00
    开源吗?
    zhch602
        8
    zhch602  
       2018-11-27 20:45:24 +08:00
    @huadi XXL 都是开源的
    xuxueli
        9
    xuxueli  
    OP
       2018-11-28 06:44:38 +08:00 via Android
    @huadi
    @zhch602
    全部开源的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3087 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 00:18 PVG 08:18 LAX 16:18 JFK 19:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86