Implemented Extension

Based on the extension capabilities of Kitex, Kitex has also implemented many common component extensions around the microservices ecosystem, all of which are stored in kitex-contrib, allowing developers to directly integrate the corresponding components through these extensions.

Registry

Kitex provides unified interfaces, Registry and Resolver, for implementing service registration and service discovery capabilities.

Currently, it has interfaced with most of the mainstream registries in the industry and offers some related capability extensions:

Configuration Center

To facilitate users to quickly integrate common microservices governance features, Kitex offers many configuration center extensions. Developers can use configuration centers to dynamically configure service governance features.

Here are the configuration center extensions already implemented by the framework:

  • config-consul: Integrating Consul configuration center with Kitex.
  • config-nacos: Integrating Nacos configuration center with Kitex.
  • config-etcd: Integrating Etcd configuration center with Kitex.
  • config-apollo: Integrating Apollo configuration center with Kitex.
  • config-zookeeper: Integrating Zookeeper configuration center with Kitex.
  • config-file: Dynamic configuration based on local files.

Observability

Kitex offers two main interfaces to achieve observability: Logger, for implementing logging; and Tracer, for implementing metric monitoring and tracing.

As an important feature of the microservices ecosystem, Kitex also provides corresponding extensions for various aspects of observability:

  • Logging: In terms of logging, Kitex includes and uses a logging extension developed based on Go’s standard log library by default, and also provides logging extensions for Go’s mainstream log libraries logrus, zap, and slog.

  • Metrics: Kitex provides monitoring extensions based on Prometheus and OpenTelemetry.

  • Tracing: Kitex offers tracing extensions based on OpenTracing and OpenTelemetry.

Repositories for observability extensions include:

  • tracer-opentracing: Tracing implementation based on OpenTracing.
  • monitor-prometheus: Monitoring extension based on Prometheus.
  • obs-opentelemetry: Observability expansion based on OpenTelemetry, and provides logging extensions based on logrus, zap, and slog log libraries.

Service Governance

Kitex provides extension functions related to service governance to enhance the management capabilities and quality of services. Through these extensions, developers can implement more complex service governance strategies.

Repositories related to service governance extensions include:

  • xds: Integrates xDS modules, allowing Kitex services to run in a Proxyless mode and be uniformly managed by the service mesh.
  • opensergo: Supports the OpenSergo service governance standard, enabling quick integration with Sentinel for traffic governance.
  • loadbalance-tagging: Load balancing strategy based on tags, suitable for scenarios with stateful services or multi-tenant services.

Protocol

Kitex provides the Codec and PayloadCodec interfaces to support the framework’s extension in multiple protocols, facilitating communication between different frameworks.

Currently, Kitex has docked with the Dubbo framework:

  • codec-dubbo: Dubbo codec, supporting encoding and decoding of Dubbo protocol, allowing interoperability with the Dubbo framework.

Last modified March 19, 2024 : chore: slack to discord (#1044) (4c2f994)