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

XXL-REGISTRY v1.0.0 发布,分布式服务注册中心

  •  
  •   xuxueli · 2018-12-03 09:21:40 +08:00 · 2057 次点击
    这是一个创建于 2172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Release Notes

    • 1、轻量级:基于 DB 与磁盘文件,只需要提供一个 DB 实例即可,无第三方依赖;
    • 2、实时性:借助内部广播机制,新服务上线、下线,可以在 1s 内推送给客户端;
    • 3、数据同步:注册中心内部 10s 会全量同步一次磁盘数据,清理无效服务,确保服务数据实时可用;
    • 4、性能:服务发现时仅读磁盘文件,性能非常高;服务注册、摘除时通过磁盘文件校验,防止重复注册操作;
    • 5、扩展性:可方便、快速的横向扩展,只需保证服务注册中心配置一致即可,可借助负载均衡组件如 Nginx 快速集群部署;
    • 6、多状态:服务内置三种状态:
      • 正常状态=支持动态注册、发现,服务注册信息实时更新;
      • 锁定状态=人工维护注册信息,服务注册信息固定不变;
      • 禁用状态=禁止使用,服务注册信息固定为空;
    • 7、跨语言:注册中心提供 HTTP 接口( RESTFUL 格式)供客户端实用,语言无关,通用性更强;
    • 8、兼容性:项目立项之初是为 XXL-RPC 量身设计,但是不限于 XXL-RPC 使用。兼容支持任何服务框架服务注册实用,如 dubbo、springboot 等;
    • 9、跨机房:得益于服务注册中心集群关系对等特性,集群各节点提供幂等的配置服务;因此,异地跨机房部署时,只需要请求本机房服务注册中心即可,实现异地多活;
    • 10、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub,进一步实现 "服务注册中心" 产品开箱即用;
    • 11、long polling 超时时间优化;服务端默认 30s 超时限制;客户端默认 60s 阻塞登台;二者以较小者为准,建议客户端大于服务端。

    简介

    XXL-REGISTRY 是一个轻量级分布式服务注册中心,拥有"轻量级、秒级注册上线、多环境、跨语言、跨机房"等特性。现已开放源代码,开箱即用。

    输入图片说明

    特性

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

    文档地址

    技术交流

    9 条回复    2018-12-03 13:36:18 +08:00
    notreami
        1
    notreami  
       2018-12-03 09:42:59 +08:00
    改用 go 来设计吧。近几年 go 写中间件,貌似很流行
    qping
        2
    qping  
       2018-12-03 10:06:31 +08:00
    XXL-job 是楼主开发的吗。。。
    xuxueli
        3
    xuxueli  
    OP
       2018-12-03 10:32:21 +08:00
    @notreami 可以考虑,不过技术栈非 go,换起来时间成本比较大啊。
    @qping 是的
    janxin
        4
    janxin  
       2018-12-03 10:54:31 +08:00
    LZ 做了好多基础组件啊,辛苦辛苦
    liuxey
        5
    liuxey  
       2018-12-03 10:59:30 +08:00
    一直有关注 XXL 系列,佩服 XXL 的毅力,不过 Java 的市场基本已被大厂垄断,小东西做起来费力推广又难,和成熟产品比毫无竞争力,不如另辟蹊径,Go 和 Rust 搞起? beego 的成功就是其作者在完美的时间点和方向切入。
    xuxueli
        6
    xuxueli  
    OP
       2018-12-03 11:34:38 +08:00
    @janxin 多谢支持!

    @liuxey 多谢关注,思路很不错!

    现在大厂开源确实越来越多了,不过他强由他强、他弱由他弱,和 XXL 社区关系不大。

    我们只是踏踏实实做我们的开源,服务好社区用户,迭代好每个产品,维护好几十个用户交流群。

    XXL 系列项目都是社区推进迭代的,每个产品都在解决一个痛点,比如:

    - XXL-JOB: http://www.xuxueli.com/xxl-job
    - XXL-SSO: http://www.xuxueli.com/xxl-sso
    - XXL-RPC: http://www.xuxueli.com/xxl-rpc
    - XXL-MQ: http://www.xuxueli.com/xxl-mq
    ……

    更多可前往: http://www.xuxueli.com/page/projects.html
    notreami
        7
    notreami  
       2018-12-03 13:08:09 +08:00
    @xuxueli 再学一门技术栈吧,我最近也是这个打算。

    近几年,开源的中间件项目,技术栈明显有偏向 js、rust、go 等语言的趋势。
    而且 java 的微服务有 spring cloud,其他系列很难有出路。
    最让人头疼是 server mesh 等技术架构的出现,再结合 docker、k8s,很难说以后中间件会被 go 垄断额。
    mortonnex
        8
    mortonnex  
       2018-12-03 13:20:33 +08:00 via iPhone
    @notreami 广不如深
    xuxueli
        9
    xuxueli  
    OP
       2018-12-03 13:36:18 +08:00 via Android
    @notreami
    @mortonnex
    是的。
    springboot 涉猎范围广,但是具体到每个点都不是很精深。现在这么流行,感觉很大程度上就是太简单,方便入门,产品质量怎么样还是其次。

    小企业小团队初期,非常适合。但是到后面肯定都会结合业务,走上自研的路。

    各大厂基础组件就看得出来了,基本上是自研然后适配 sc 方便使用,真正全部用 sc 的很罕见。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:08 · PVG 10:08 · LAX 18:08 · JFK 21:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.