The architecture of microservcice based on Dubbo consists of two main components:
Dubbo Admin can configures and monitor the data plane from a global perspective. The Dubbo Admin can be divided into two parts internally: console and control-planeData Plane is the Dubbo application built by different language SDKs running in VMs/containers, receiving the resources dispatched by Control Plane(directly or indirectly) and turn them into specific functions, such as service discovery, traffic routing, load balancing, etc.Dubbo Admin supports three runtime modes: kubernetes, Half and Universal.
In kubernetes mode, the control plane will interact directly with the Kubernetes API-SERVER, watching the kubernetes resources and transform them as xDS resources for service discovery and traffic management configurations.
We all know the service definitions of Kubernetes and Dubbo are different, Kubernetes Service is more like an application concept run on a selected group of pods while Dubbo Service can mean a specific RPC service inside the application process. So how does dubbo control plane manages to bridge the interface-application gap, check here for more details.
In half mode, the dubbo applications are deployed in k8s cluster, while still using Nacos or Zookeeper as registries for service discovery. In this mode, the control plane can retrieve and merge info from k8s and registries. The traffic policies are dispatched by control plane through registries.
In Universal mode, the dubbo applications are deployed in VM, using Nacos or Zookeeper as registries for service discovery, control plane then interact with registry directly.
The source code guidance of this project.
With this documentation, developers can learn which part of the project they need to change in order to fix a bug or introduce a new feature. How can they verify their codes work as expected before submit a pull request, by running the project locally or running the test suite.
If you're using GoLand, you can run it locally by following steps:
Run configuration on the top menu bar and add new configurationWe are currently restructuring the entire project, so the directory structure of the project will be changed in the near future. We will roll out this part of documents once the catalog is stable.
If you come up with a bug or introduce a new feature, you can follow the steps to make it: