V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuxueli
V2EX  ›  Java

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

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

    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   ·   我们的愿景   ·   实用小工具   ·   2941 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:11 · PVG 22:11 · LAX 07:11 · JFK 10:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.