目录

SOFARegistry

unit test integration test license codecov maven

SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。SOFARegistry 最早源自于淘宝的 ConfigServer,十年来,随着蚂蚁金服的业务发展,注册中心架构已经演进至第六代。目前 SOFARegistry 不仅全面服务于蚂蚁金服的自有业务,还随着蚂蚁金融科技服务众多合作伙伴,同时也兼容开源生态。SOFARegistry 采用 AP 架构,支持秒级时效性推送,同时采用分层架构支持无限水平扩展。

功能特性

  • 支持服务发布与服务订阅
  • 支持服务变更时的主动推送
  • 丰富的 REST 接口
  • 采用分层架构及数据分片,支持海量连接及海量数据
  • 支持多副本备份,保证数据高可用
  • 基于 SOFABolt 通信框架,服务上下线秒级通知
  • AP 架构,保证网络分区下的可用性

需要

编译需要 JDK 8 及以上、Maven 3.2.5 及以上。

运行需要 JDK 6 及以上,服务端运行需要 JDK 8及以上。

推荐使用JDK 8,JDK 16尚未被测试,可能会有兼容性问题

管理接口鉴权

多集群配置、跨集群发布者清理、POST /shutdown/update、 POST /api/emergency/shutdown 和推送效率配置接口需要部署时提供的 Token。 其中包括 GET /api/multi/cluster/query 和 queryAll。

  • 在 Meta、Session 进程(或一体化部署进程)中,通过环境变量 SOFA_REGISTRY_MANAGEMENT_AUTH_TOKEN 注入密码学安全的随机密钥。
  • 也可以使用 JVM 系统属性 sofa.registry.management.auth-token。 系统属性优先于环境变量,包括显式配置为空的情况。 该属性直接从 JVM 读取,不读取 application.properties 中的同名配置。
  • 未配置或配置为空白时,上述接口拒绝访问,没有内置默认 Token。
  • 原有 POST 接口继续通过表单参数 token 传递凭证;两个多集群 GET 查询接口和 推送效率 GET 接口通过 HTTP 请求头 token 传递,不接受 URL 中的 Token 参数。
  • 升级前先配置新密钥并更新管理脚本,不要复用原源码中的固定 Token。 密钥应由部署平台的密钥管理服务托管,不得提交到仓库或输出到日志。 使用环境变量时,轮换需更新密钥并重启对应进程;不同部署/信任域使用独立密钥。

本配置仅作用于上述接口,不配置其他 Meta 管理接口使用的独立 AuthRestFilter 机制。

文档

如何参与 SOFARegistry 代码贡献

致谢

SOFARegistry 最早源于阿里内部的 ConfigServer,感谢毕玄创造了 ConfigServer,使 SOFARegistry 的发展有了良好的基础。同时,部分代码参考了 Netflix 的 Eureka,感谢 Netflix 开源了如此优秀框架。

开源许可

SOFARegistry 基于 Apache License 2.0 协议

    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号