Skip to content

About

SOFARegistry is a production-level, low-latency, high-availability service registry powered by Ant Financial.

Resources

Contributing

Security policy

Stars

661 stars

Watchers

38 watching

Forks

Repository files navigation

SOFARegistry

unit test integration test license codecov maven

中文版本

SOFARegistry is a production-level, low-latency, high-availability registry system for micro-services registration powered by Ant Group. SOFARegistry originated from Taobao's ConfigServer. Over the past decade, as Ant Group's business has grown, its registry architecture has evolved to its sixth generation. Currently, SOFARegistry not only fully supports Ant Group's internal services, but also serves numerous partners through Ant Financial Technology while maintaining compatibility with the open-source ecosystem. Adopting an AP architecture, SOFARegistry enables millisecond-level real-time push notifications. Additionally, its layered architecture supports unlimited horizontal scalability.

Functionality

  • Supports service publishing and subscription
  • Provides real-time notifications upon service change
  • Offers enhanced service governance API endpoints
  • Employs multi-tier architecture for traffic and data wise to handle massive connections and large-scale datasets
  • Ensures high data availability through facility replication capabilities
  • Enables millisecond-level notifications for service registration/deregistration via SOFABolt communication framework
  • AP architecture guarantees availability under network partitions

Requirement

  • Compilation requires JDK 8+ and Maven 3.2.5+
  • Runtime environment requires JDK 6+ (JDK 8+ for server-side deployment)
  • Recommended: JDK 8 (JDK 16 has not been tested and may have compatibility issues)

Management API authentication

The multi-cluster configuration and datum-removal APIs, POST /shutdown/update, POST /api/emergency/shutdown, and the push-efficiency configuration APIs require a deployment-provided token. This includes GET /api/multi/cluster/query and queryAll.

  • Inject a cryptographically random secret through SOFA_REGISTRY_MANAGEMENT_AUTH_TOKEN in the Meta and Session server processes (or the integration process).
  • Alternatively, set the JVM system property sofa.registry.management.auth-token. It takes precedence over the environment variable, even when explicitly empty. This property is read directly from the JVM, not from application.properties.
  • Missing or blank configuration disables access to these APIs. There is no built-in token.
  • Existing POST APIs retain their token form parameter. The two multi-cluster GET queries and the push-efficiency GET APIs use the token HTTP header, not a URL parameter.
  • Before upgrading, provision fresh secrets and update management clients. Do not reuse the former source-code token. Keep secrets out of source control and logs; use your deployment secret manager, and rotate each affected process with a restart when using environment variables. Use separate secrets across deployments/trust boundaries.

This configuration applies to the APIs above; it does not configure the separate AuthRestFilter mechanism used by other Meta management APIs.

Docs

Contribute

How to Contribute to SOFARegistry

Acknowledgements

SOFARegistry originally evolved from Alibaba's internal ConfigServer. We extend our gratitude to Bi Xuan(毕玄) for creating ConfigServer, which laid a solid foundation for SOFARegistry's development. The implementation references portions of code from Netflix's Eureka, and we are grateful to Netflix for open-sourcing this exceptional framework.

License

SOFARegistry is licensed under the Apache License 2.0.

About

SOFARegistry is a production-level, low-latency, high-availability service registry powered by Ant Financial.

Resources

Contributing

Security policy

Stars

661 stars

Watchers

38 watching

Forks

Releases

Packages

Used by

Contributors

Languages