|
| 1 | + |
1 | 2 | # Apache Dubbo Project |
2 | 3 |
|
3 | 4 | [](https://github.com/apache/dubbo/actions/workflows/build-and-test-pr.yml) |
4 | 5 | [](https://codecov.io/gh/apache/dubbo) |
5 | 6 | [](https://github.com/apache/dubbo/releases) |
6 | 7 | [](https://github.com/apache/dubbo/blob/3.3/LICENSE) |
7 | | -[](http://isitmaintained.com/project/apache/dubbo "Average time to resolve an issue") |
8 | | -[](http://isitmaintained.com/project/apache/dubbo "Percentage of issues still open") |
| 8 | +[](http://isitmaintained.com/project/apache/dubbo) |
| 9 | +[](http://isitmaintained.com/project/apache/dubbo) |
| 10 | + |
| 11 | +Apache Dubbo is a powerful and user-friendly Web and RPC framework. It supports multiple language implementations such as Java, [Go](https://github.com/apache/dubbo-go), [Python](https://github.com/dubbo/py-client-for-apache-dubbo), [PHP](https://github.com/apache/dubbo-php-framework), [Erlang](https://github.com/apache/dubbo-erlang), [Rust](https://github.com/apache/dubbo-rust), and [Node.js/Web](https://github.com/apache/dubbo-js). |
| 12 | + |
| 13 | +Dubbo provides solutions for communication, service discovery, traffic management, observability, security, tooling, and best practices for building enterprise-grade microservices. |
9 | 14 |
|
10 | | -Apache Dubbo is an easy-to-use Web and RPC framework that provides multiple |
11 | | -language implementations(Java, [Go](https://github.com/apache/dubbo-go), [Python](https://github.com/dubbo/py-client-for-apache-dubbo), [PHP](https://github.com/apache/dubbo-php-framework), [Erlang](https://github.com/apache/dubbo-erlang), [Rust](https://github.com/apache/dubbo-rust), [Node.js](https://github.com/apache/dubbo-js), [Web](https://github.com/apache/dubbo-js)) for communication, service discovery, traffic management, |
12 | | -observability, security, tools, and best practices for building enterprise-ready microservices. |
| 15 | +> 🚀 We're collecting user info to improve Dubbo. Help us out here: [Who's using Dubbo](https://github.com/apache/dubbo/discussions/13842) |
13 | 16 |
|
14 | | -We are now collecting Dubbo user info to help us to improve Dubbo further. Kindly support us by providing your usage information on [Wanted: who's using dubbo](https://github.com/apache/dubbo/discussions/13842), thanks :) |
| 17 | +--- |
| 18 | + |
| 19 | +## 🧱 Architecture |
15 | 20 |
|
16 | | -## Architecture |
17 | 21 |  |
18 | 22 |
|
19 | | -* Consumer and provider communicate with each other using RPC protocol like triple, tcp, rest, etc. |
20 | | -* Consumers automatically trace provider instances registered in registries(Zookeeper, Nacos) and distribute traffic among them by following traffic strategies. |
21 | | -* Rich features for monitoring and managing the cluster with dynamic configuration, metrics, tracing, security, and visualized console. |
| 23 | +- Communication between consumers and providers is done via RPC protocols like Triple, TCP, REST, etc. |
| 24 | +- Consumers dynamically discover provider instances from registries (e.g., Zookeeper, Nacos) and manage traffic using defined strategies. |
| 25 | +- Built-in support for dynamic config, metrics, tracing, security, and a visualized console. |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## 🚀 Getting Started |
| 30 | + |
| 31 | +### 📦 Lightweight RPC API |
| 32 | + |
| 33 | +Start quickly with our [5-minute guide](https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/) |
| 34 | + |
| 35 | +Dubbo allows you to build RPC services using a minimal codebase and a lightweight SDK. It supports protocols like: |
| 36 | + |
| 37 | +- [Triple (gRPC-compatible)](https://dubbo.apache.org/zh-cn/overview/reference/protocols/triple/) |
| 38 | +- Dubbo2 (TCP) |
| 39 | +- REST |
| 40 | +- Custom protocols |
| 41 | + |
| 42 | +### 🌱 Microservices with Spring Boot |
22 | 43 |
|
23 | | -## Getting started |
24 | | -Follow the instructions below to learn how to: |
| 44 | +Kickstart your project using [Spring Boot Starter](https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/). |
25 | 45 |
|
26 | | -### Programming with lightweight RPC API |
27 | | -[5 minutes step-by-step guide](https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/lightweight-rpc/) |
| 46 | +Using just a dependency and a YAML config, you can unlock the full power of Dubbo: service discovery, observability, tracing, etc. |
28 | 47 |
|
29 | | -Dubbo supports building RPC services with only a few lines of code while depending only on a lightweight SDK. The protocol on the wire can be [Triple](https://dubbo.apache.org/zh-cn/overview/reference/protocols/triple/)(fully gRPC compatible and HTTP-friendly), Dubbo2(TCP), REST, or any protocol of your choice. |
| 48 | +➡️ Learn how to [deploy](https://dubbo.apache.org/zh-cn/overview/tasks/deploy/), [monitor](https://dubbo.apache.org/zh-cn/overview/tasks/observability/), and [manage traffic](https://dubbo.apache.org/zh-cn/overview/tasks/traffic-management/) for Dubbo services. |
30 | 49 |
|
| 50 | +--- |
31 | 51 |
|
32 | | -### Building a microservice application with Spring Boot |
33 | | -[5 minutes step-by-step guide](https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/develop/springboot/) |
| 52 | +## 🛠️ More Features |
34 | 53 |
|
35 | | -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. |
| 54 | +Explore more through our hands-on tasks: |
36 | 55 |
|
37 | | -Next, learn how to [deploy](https://dubbo.apache.org/zh-cn/overview/tasks/deploy/), [monitor](https://dubbo.apache.org/zh-cn/overview/tasks/observability/), and [manage the traffic](https://dubbo.apache.org/zh-cn/overview/tasks/traffic-management/) of your Dubbo application and cluster. |
| 56 | +- [Launch a Dubbo project](https://dubbo.apache.org/zh-cn/overview/tasks/develop/template/) |
| 57 | +- [RPC protocols](https://dubbo.apache.org/zh-cn/overview/core-features/protocols/) |
| 58 | +- [Traffic management](https://dubbo.apache.org/zh-cn/overview/core-features/traffic/) |
| 59 | +- [Service discovery](https://dubbo.apache.org/zh-cn/overview/core-features/service-discovery/) |
| 60 | +- [Observability](https://dubbo.apache.org/zh-cn/overview/core-features/observability/) |
| 61 | +- [Extensibility](https://dubbo.apache.org/zh-cn/overview/core-features/extensibility/) |
| 62 | +- [Security](https://dubbo.apache.org/zh-cn/overview/core-features/security/) |
| 63 | +- [Visualized Console](https://dubbo.apache.org/zh-cn/overview/reference/admin/) |
| 64 | +- [Kubernetes & Service Mesh](https://dubbo.apache.org/zh-cn/overview/core-features/service-mesh/) |
38 | 65 |
|
39 | | -## More Features |
40 | | -Get more details by visiting the links below to get your hands dirty with some well-designed tasks on our website. |
| 66 | +--- |
41 | 67 |
|
42 | | -* [Launch a Dubbo project](https://dubbo.apache.org/zh-cn/overview/tasks/develop/template/) |
43 | | -* [RPC protocols](https://dubbo.apache.org/zh-cn/overview/core-features/protocols/) |
44 | | -* [Traffic management](https://dubbo.apache.org/zh-cn/overview/core-features/traffic/) |
45 | | -* [Service discovery](https://dubbo.apache.org/zh-cn/overview/core-features/service-discovery/) |
46 | | -* [Observability](https://dubbo.apache.org/zh-cn/overview/core-features/observability/) |
47 | | -* [Extensibility](https://dubbo.apache.org/zh-cn/overview/core-features/extensibility/) |
48 | | -* [Security](https://dubbo.apache.org/zh-cn/overview/core-features/security/) |
49 | | -* [Visualized console and control plane](https://dubbo.apache.org/zh-cn/overview/reference/admin/) |
50 | | -* [Kubernetes and Service mesh](https://dubbo.apache.org/zh-cn/overview/core-features/service-mesh/) |
| 68 | +## 📦 Which Dubbo Version Should I Use? |
51 | 69 |
|
52 | | -## Which Dubbo version should I use? |
53 | | -| **Dubbo3** | **JDK** | **Dependencies** | **Description** | |
54 | | -|------------|----------|---------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
55 | | -| 3.3.2 | 1.8 ~ 21 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-3.3.2/dubbo-dependencies-bom/pom.xml#L92) | **- Stable version (active)** <br/> **- Features** <br/> - Triple - gRPC and cURL compatible.<br/> - Rest-style programming support.<br/> - Spring Boot Starters. | |
56 | | -| 3.2.16 | 1.8 ~ 17 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-3.2.5/dubbo-dependencies-bom/pom.xml#L94) | **- Stable version (active)** <br/> **- Features** <br/> - Out-of-box metrics and tracing support.<br/> - Threadpool Isolation<br/> - 30% performance<br/> - Native Image | |
57 | | -| 3.1.11 | 1.8 ~ 17 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-3.2.11/dubbo-dependencies-bom/pom.xml#L90) | **Stable version (not active)** | |
| 70 | +### Dubbo3 |
58 | 71 |
|
59 | | -| **Dubbo2** | **JDK** | **Dependencies** | **Description** | |
60 | | -| --- | --- |---------------------------------------------------------------------------------------------------------| --- | |
61 | | -| 2.7.23 | 1.8 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-2.7.23/dubbo-dependencies-bom/pom.xml#L92) | EOL | |
62 | | -| 2.6.x, 2.5.x | 1.6 ~ 1.7 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-2.6.12/dependencies-bom/pom.xml#L90) | EOL | |
| 72 | +## 📦 Version Compatibility |
63 | 73 |
|
64 | | -## Contributing |
65 | | -See [CONTRIBUTING](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) for details on submitting patches and the contribution workflow. |
| 74 | +| Version | JDK Support | Dependencies | Highlights | |
| 75 | +|----------|-------------|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------| |
| 76 | +| **3.3.2** | 1.8 – 21 | [View Dependencies](https://github.com/apache/dubbo/blob/dubbo-3.3.2/dubbo-dependencies-bom/pom.xml#L92) | ✅ Actively Maintained <br> ✅ Triple Protocol (gRPC/cURL) <br> ✅ REST Support <br> ✅ Spring Boot Starters | |
| 77 | +| **3.2.16** | 1.8 – 17 | [View Dependencies](https://github.com/apache/dubbo/blob/dubbo-3.2.5/dubbo-dependencies-bom/pom.xml#L94) | ✅ Actively Maintained <br> ✅ Metrics & Tracing <br> ✅ Thread Pool Isolation <br> ✅ +30% Performance <br> ✅ Native Image Support | |
| 78 | +| **3.1.11** | 1.8 – 17 | [View Dependencies](https://github.com/apache/dubbo/blob/dubbo-3.2.11/dubbo-dependencies-bom/pom.xml#L90) | ⚠️ Stable, but Not Actively Maintained | |
66 | 79 |
|
67 | | -### How does the Dubbo Community collaborate? |
| 80 | +### Dubbo2 |
68 | 81 |
|
69 | | -The Dubbo Community primarily communicates on GitHub through issues, discussions, and pull requests. |
| 82 | +| Version | JDK | Dependencies | Description | |
| 83 | +|-------------|-----------|--------------------------------------------------------------------------------------------------------|-------------| |
| 84 | +| 2.7.23 | 1.8 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-2.7.23/dubbo-dependencies-bom/pom.xml#L92) | ❌ EOL | |
| 85 | +| 2.6.x, 2.5.x| 1.6 - 1.7 | [dependency list](https://github.com/apache/dubbo/blob/dubbo-2.6.12/dependencies-bom/pom.xml#L90) | ❌ EOL | |
70 | 86 |
|
71 | | -- Issues: We use issues to track bugs and tasks. Any **work-related** item is associated with an issue. |
72 | | -- Discussions: We use discussions for questions, early proposals, and announcements. Any **idea-related** item is associated with a discussion. |
73 | | -- Pull Requests: We use pull requests to merge a set of changes from contributors into Dubbo. |
| 87 | +--- |
74 | 88 |
|
75 | | -We have also implemented [a project board](https://github.com/orgs/apache/projects/337) to monitor all the items. |
| 89 | +## 🤝 Contributing |
76 | 90 |
|
77 | | -Any essential changes should be discussed on the mailing list before they happen. |
| 91 | +See our [CONTRIBUTING](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) guide to get started! |
78 | 92 |
|
79 | | -### Seeking help |
| 93 | +### 🔁 Community Collaboration |
80 | 94 |
|
81 | | -If you have questions such as: |
| 95 | +- **Issues**: For bugs or tasks – [GitHub Issues](https://github.com/apache/dubbo/issues) |
| 96 | +- **Discussions**: For questions, ideas – [GitHub Discussions](https://github.com/apache/dubbo/discussions) |
| 97 | +- **PRs**: For merging your contributions – [GitHub Pull Requests](https://github.com/apache/dubbo/pulls) |
| 98 | +- **Project Board**: [Dubbo Project Board](https://github.com/orgs/apache/projects/337) |
82 | 99 |
|
83 | | -- What is Dubbo? |
84 | | -- How do I use Dubbo? |
85 | | -- Why did an unexpected result occur? |
| 100 | +### 💡 How You Can Help |
86 | 101 |
|
87 | | -Please start a discussion at https://github.com/apache/dubbo/discussions. |
| 102 | +- Check out "help wanted" issues: [Project Board](https://github.com/orgs/apache/projects/337) |
| 103 | +- Join [mailing list discussions](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide) |
| 104 | +- Engage in [discussions](https://github.com/apache/dubbo/discussions) |
| 105 | +- Fix [bugs](https://github.com/apache/dubbo/issues) or review [pull requests](https://github.com/apache/dubbo/pulls) |
| 106 | +- Enhance the [website](https://github.com/apache/dubbo-website) |
| 107 | +- Improve [dubbo-admin](https://github.com/apache/dubbo-admin) |
| 108 | +- Contribute to the [ecosystem](https://github.com/apache/?q=dubbo&type=all&language=&sort=) |
88 | 109 |
|
89 | | -However, if you encounter the following situations: |
| 110 | +If you 're interested in contributing, email us at [[email protected]](mailto:[email protected]). |
90 | 111 |
|
91 | | -- You're certain there's a bug that Dubbo needs to fix, |
92 | | -- You believe a feature could be enhanced, |
93 | | -- You have a detailed proposal for improving Dubbo, |
| 112 | +--- |
94 | 113 |
|
95 | | -Please open an issue at https://github.com/apache/dubbo/issues. |
| 114 | +## 🐞 Reporting Issues |
96 | 115 |
|
97 | | -To ask effective questions, we recommend reading **[How To Ask Questions The Smart Way](https://github.com/selfteaching/How-To-Ask-Questions-The-Smart-Way/blob/master/How-To-Ask-Questions-The-Smart-Way.md)** first. |
| 116 | +Please use our [issue template](https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md) when reporting bugs. |
98 | 117 |
|
99 | | -### Make a Contribution |
| 118 | +--- |
100 | 119 |
|
101 | | -- Browse the "help wanted" tasks in the [Dubbo project board](https://github.com/orgs/apache/projects/337). |
102 | | -- Participate in discussions on the mailing list. See the subscription [guide](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide). |
103 | | -- Respond to queries in the [discussions](https://github.com/apache/dubbo/issues). |
104 | | -- Resolve bugs reported in [issues](https://github.com/apache/dubbo/issues) and send us a pull request. |
105 | | -- Review existing [pull requests](https://github.com/apache/dubbo/pulls). |
106 | | -- Enhance the [website](https://github.com/apache/dubbo-website). We typically need: |
107 | | - - Blog posts |
108 | | - - Translations for documentation |
109 | | - - Use cases showcasing Dubbo integration in enterprise systems. |
110 | | -- Improve the [dubbo-admin](https://github.com/apache/dubbo-admin). |
111 | | -- Contribute to the projects listed in the [ecosystem](https://github.com/apache/?q=dubbo&type=all&language=&sort=). |
112 | | -- Any other forms of contribution not listed above are also welcome. |
113 | | -- If you're interested in contributing, please send an email to [[email protected]](mailto:[email protected]) to let us know! |
| 120 | +## 🔐 Reporting Security Vulnerabilities |
114 | 121 |
|
115 | | -For more details, please take a look at our [guide](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) about how to contribute to Dubbo. |
| 122 | +Please report vulnerabilities **privately** to [[email protected]](mailto:security@dubbo.apache.org). |
116 | 123 |
|
117 | | -## Reporting bugs |
| 124 | +--- |
118 | 125 |
|
119 | | -Please follow the [template](https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md) for reporting any issues. |
| 126 | +## 📬 Contact |
120 | 127 |
|
121 | | -## Reporting a security vulnerability |
| 128 | +- **WeChat**: `apachedubbo` |
| 129 | +- **DingTalk**: Group ID `37290003945` |
| 130 | +- **Mailing List**: [Contact Guide](https://dubbo.apache.org/zh-cn/contact/) |
| 131 | +- **Twitter**: [@ApacheDubbo](https://twitter.com/ApacheDubbo) |
| 132 | + |
122 | 133 |
|
123 | | -Please report security vulnerabilities to [us](mailto:[email protected]) privately. |
| 134 | +--- |
124 | 135 |
|
125 | | -## Contact |
126 | | -* WeChat: apachedubbo |
127 | | -* DingTalk group: 37290003945 |
128 | | -* Mailing list: [guide](https://dubbo.apache.org/zh-cn/contact/) |
129 | | -* Twitter: [@ApacheDubbo](https://twitter.com/ApacheDubbo) |
130 | | -* Security issues: please mail to [us ](mailto:[email protected]) privately. |
| 136 | +## 📄 License |
131 | 137 |
|
132 | | -## License |
133 | | -Apache Dubbo is licensed under the Apache License Version 2.0. See the [LICENSE](https://github.com/apache/dubbo/blob/3.3/LICENSE) file for details. |
| 138 | +Apache Dubbo is licensed under the [Apache License 2.0](https://github.com/apache/dubbo/blob/3.3/LICENSE). |
0 commit comments