Remaining works of config-api refactor (#13045)

* * Move Configurator & Factory to common

* * Move ServiceNameMapping & MappingListener & MappingChangedEvent to common
* Add ServiceNameMappingUtils

* * Move ClusterUtils to common

* * Add ClusterInvokerFactory

* * Move InterfaceConfigValidator & MethodConfigValidator to cluster
* Move ConfigCenterConfigValidator to configcenter-api

* * Move DefaultMetricsServiceExporter to metrics-default

* * Move Lifecycles

* * Fix a part cyclic dependencies problem

* * Move ApplicationPostOfflineLifecycle to dubbo-registry

* * Fix a part cycle dependencies problem

* * Fix ut about MetadataReportInstance & Move Prometheus ut to metrics
* Move ClusterInvokerFactory to rpc-api

* * Update config-api pom

* * Add license

* * Fix module version of metadata-api

* * Move some MetadataService API to registry-api

* Add interface ApplicationMetadataUpdater to reduce the depedencies of  dubbo-metadata on dubbo-registry

* Temporary remove some tests that caused cyclic reference

* Temporary remove some tests that caused cyclic reference

* Add license

* Add test-config module for test

* Add license

* Fix pom

* Tests fix

* Pom fix

* Fix a bean registry problem

* Move config-test to dubbo-config

* Fix pom

* Add removed test

* Add removed test

* Remove application.yaml

* Fix version

* Fix codestyle

* Fix spi file

* Fix dependencies of dubbo-demo-native

* Fix dependencies of dubbo-demo-native

* Fix dependencies of dubbo-demo-native

* Fix dependencies of dubbo-demo-native

* Fix dependencies of dubbo-demo-native

* Fix dependencies of dubbo-demo-native

* Fix dependencies of dubbo-rpc

* Fix dependencies of dubbo-rpc-rest

* Fix dependencies of dubbo-rpc-rest

* Fix dependencies of dubbo-rpc-rest

* Fix dependencies of dubbo-rpc-rest

* Fix spi file of ApplicationDeployListener

* Fix test about exporter count

* Fix test about exporter count

* Update pom

* Add test msg

* Change MetadataUpdater init process

* Change MetadataUpdater init process

* Change MetadataUpdater init process

* Change MetadataUpdater init process

* Fix dependencies of dubbo-rpc-rest

* Using lifecycle instead of ApplicationDeployListener

* Update doc

* Update log

* Fix pom of dubbo-config-spring & dubbo-plugin-security & dubbo-rpc-rest

* Add scope for ApplicationLifecycle

* Fix pom of dubbo-config-spring

* Fix ut of rpc-rest(PR#13087)

* Fix bug of DefaultClusterInvokerFactory

* Fix bug of DefaultClusterInvokerFactory

* Fix bug of DefaultClusterInvokerFactory

* Fix bug of ServiceInstanceCustomizer

* Add dubbo-config-test to ignore list

* Code style & bug fix

* Remove unused import

* Add zookeeper-curator for test

* Test zookeeper version

* Test zookeeper version

* Test fix zookeeper

* Remove unnecessary modification

* Add test props

* Remove unused dependencies

* Code style fix

* Remove unnecessary dependencies & Code style fix

* Fix dependencies

* Update pom.xml

* Add dubbo-config-test as ignored

* Refactor ClusterInvokerFactory

* Refactor ClusterInvokerFactory

* Refactor ClusterInvokerFactory
258 files changed
tree: 7d1ffa8f3658ad243ab616b431b784f362fc0781
  1. .github/
  2. .mvn/
  3. codestyle/
  4. dubbo-annotation-processor/
  5. dubbo-build-tools/
  6. dubbo-cluster/
  7. dubbo-common/
  8. dubbo-compatible/
  9. dubbo-compiler/
  10. dubbo-config/
  11. dubbo-configcenter/
  12. dubbo-container/
  13. dubbo-demo/
  14. dubbo-dependencies/
  15. dubbo-dependencies-bom/
  16. dubbo-distribution/
  17. dubbo-filter/
  18. dubbo-kubernetes/
  19. dubbo-maven-plugin/
  20. dubbo-metadata/
  21. dubbo-metrics/
  22. dubbo-monitor/
  23. dubbo-native/
  24. dubbo-plugin/
  25. dubbo-registry/
  26. dubbo-remoting/
  27. dubbo-rpc/
  28. dubbo-serialization/
  29. dubbo-spring-boot/
  30. dubbo-test/
  31. dubbo-xds/
  32. .artifacts
  33. .asf.yaml
  34. .editorconfig
  35. .gitattributes
  36. .gitignore
  37. .licenserc.yaml
  38. CHANGES.md
  39. CODE_OF_CONDUCT.md
  40. codecov.yml
  41. CONTRIBUTING.md
  42. Jenkinsfile
  43. Jenkinsfile.sonar
  44. LICENSE
  45. licenseCheck.sh
  46. mvnw
  47. mvnw.cmd
  48. NOTICE
  49. pom.xml
  50. PULL_REQUEST_TEMPLATE.md
  51. README.md
  52. SECURITY.md
README.md

Apache Dubbo Project

Build and Test For PR Codecov Maven License Average time to resolve an issue Percentage of issues still open Tweet Twitter Follow Gitter

Apache Dubbo is an easy-to-use Web and RPC framework that provides multiple language implementations(Java, Go, Rust, Node.js, Web) for communication, service discovery, traffic management, observability, security, tools, and best practices for building enterprise-ready microservices.

Visit the official website for more information.

Architecture

Architecture

  • Consumer and provider communicate with each other using RPC protocol like triple, tcp, rest, etc.
  • Consumers automatically trace provider instances registered in registries(Zookeeper, Nacos) and distribute traffic among them by following traffic strategies.
  • Rich features for monitoring and managing the cluster with dynamic configuration, metrics, tracing, security, and visualized console.

Getting started

Follow the instructions below to learn how to:

Programming with lightweight RPC API

5 minutes step-by-step guide

Dubbo supports building RPC services with only a few lines of code while depending only on a lightweight SDK (<10MB). The protocol on the wire can be Triple(fully gRPC compatible and HTTP-friendly), Dubbo2(TCP), REST, or any protocol of your choice.

Building a microservice application with Spring Boot

5 minutes step-by-step guide

It's highly recommended to start your microservice application with the Spring Boot Starter dubbo-spring-boot-starter provided by Dubbo. With only a single dependency and yaml file, and optionally a bunch of other useful spring boot starters, you can enable all of the Dubo features like service discovery, observability, tracing, etc.

Next, learn how to deploy, monitor, and manage the traffic of your Dubbo application and cluster.

More Features

Get more details by visiting the links below to get your hands dirty with some well-designed tasks on our website.

Which Dubbo version should I use?

Dubbo3JDKDependenciesDescription
3.3.0-beta1.8 ~ 17dependency list- Unstable version
- Features
   - Triple - gRPC and cURL compatible.
   - Rest-style programming support.
   - Spring Boot Starters.
3.2.51.8 ~ 17dependency list- Stable version (active)
- Features
  - Out-of-box metrics and tracing support.
  - Threadpool Isolation
  - 30% performance
  - Native Image
3.1.111.8 ~ 11dependency listStable version (not active)
Dubbo2JDKDependenciesDescription
2.7.231.8dependency listEOL
2.6.x, 2.5.x1.6 ~ 1.7EOL

Contributing

See CONTRIBUTING for details on submitting patches and the contribution workflow.

Contact

  • WeChat: apachedubbo
  • DingTalk group: 37290003945
  • Mailing list: guide
  • Twitter: @ApacheDubbo
  • Security issues: please mail to us privately.

License

Apache Dubbo is licensed under the Apache License Version 2.0. See the LICENSE file for details.