doc: Update docs for Dubbo 2.7.x and 3.x adapter

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
Eric Zhao 2022-08-08 10:12:19 +08:00
parent 9b7786259e
commit e0eb63e80e
2 changed files with 18 additions and 22 deletions

View File

@ -1,9 +1,9 @@
# Sentinel Apache Dubbo Adapter (for 2.7.x+)
> Note: 中文文档请见[此处](https://github.com/alibaba/Sentinel/wiki/主流框架的适配#dubbo)。
> Note: 中文文档请见[此处](https://sentinelguard.io/zh-cn/docs/open-source-framework-integrations.html)。
Sentinel Dubbo Adapter provides service consumer filter and provider filter
for [Apache Dubbo](https://dubbo.apache.org/en-us/) services.
for [Apache Dubbo](https://dubbo.apache.org/en/) services.
**Note: This adapter only supports Apache Dubbo 2.7.x and above.** For legacy `com.alibaba:dubbo` 2.6.x,
please use `sentinel-dubbo-adapter` module instead.
@ -51,7 +51,7 @@ and will bring the caller's name when doing resource protection.
If `limitApp` of flow rules is not configured (`default`), flow control will take effects on all callers.
If `limitApp` of a flow rule is configured with a caller, then the corresponding flow rule will only take effect on the specific caller.
> Note: Dubbo consumer does not provide its Dubbo application name when doing RPC,
> Note: Earlier Dubbo 2.7.x consumer does not provide its Dubbo application name when doing RPC,
> so developers should manually put the application name into *attachment* at consumer side,
> then extract it at provider side. Sentinel Dubbo Adapter has implemented a filter (`DubboAppContextFilter`)
> where consumer can carry application name information to provider automatically.

View File

@ -1,17 +1,15 @@
# Sentinel Apache Dubbo Adapter (for 3.0.5+)
> Note: 中文文档请见[此处](https://github.com/alibaba/Sentinel/wiki/主流框架的适配#dubbo)。
> Note: 中文文档请见[此处](https://sentinelguard.io/zh-cn/docs/open-source-framework-integrations.html)。
Sentinel Dubbo Adapter provides service consumer filter and provider filter
for [Apache Dubbo](https://dubbo.apache.org/en-us/) services.
for [Apache Dubbo](https://dubbo.apache.org/en/) services.
**Note: This adapter only supports Apache Dubbo 3.0.5 and above.**
For `org.apache:dubbo` 2.7.x, please use `sentinel-apache-dubbo-adapter` module instead.
For legacy `com.alibaba:dubbo` 2.6.x, please use `sentinel-dubbo-adapter` module instead.
For `org.apache:dubbo` 2.7.x, please use `sentinel-apache-dubbo-adapter` module instead.
To use Sentinel Dubbo Adapter, you can simply add the following dependency to your `pom.xml`:
To use Sentinel Dubbo 3.x Adapter, you can simply add the following dependency to your `pom.xml`:
```xml
<dependency>
@ -23,7 +21,7 @@ To use Sentinel Dubbo Adapter, you can simply add the following dependency to yo
The Sentinel filters are **enabled by default**. Once you add the dependency,
the Dubbo services and methods will become protected resources in Sentinel,
which can leverage Sentinel's flow control and guard ability when rules are configured.
which can leverage Sentinel's flow control and overload protection ability when rules are configured.
Demos can be found in [sentinel-demo-apache-dubbo](https://github.com/alibaba/Sentinel/tree/master/sentinel-demo/sentinel-demo-apache-dubbo).
If you don't want the filters enabled, you can manually disable them. For example:
@ -34,7 +32,7 @@ If you don't want the filters enabled, you can manually disable them. For exampl
<dubbo:provider filter="-sentinel.dubbo.provider.filter"/>
```
For more details of Dubbo filter, see [here](http://dubbo.apache.org/en-us/docs/dev/impls/filter.html).
For more details of Dubbo filter, see [here](https://dubbo.apache.org/zh/docs3-v2/java-sdk/reference-manual/spi/description/filter/).
## Dubbo resources
@ -43,6 +41,10 @@ The resource for Dubbo services has two granularities: service interface and ser
- Service interface: resourceName format is `interfaceName`, e.g. `com.alibaba.csp.sentinel.demo.dubbo.FooService`
- Service method: resourceName format is `interfaceName:methodSignature`, e.g. `com.alibaba.csp.sentinel.demo.dubbo.FooService:sayHello(java.lang.String)`
> **Note**: Dubbo *group+version+interface* level is also supported in Sentinel Apache Dubbo adapter.
> You may just add `-Dcsp.sentinel.dubbo.interface.group.version.enabled=true` JVM property,
> then the resource name of the Dubbo interface and method will be prefixed with group and version info.
## Flow control based on caller
In many circumstances, it's also significant to control traffic flow based on the **caller**.
@ -54,15 +56,8 @@ and will bring the caller's name when doing resource protection.
If `limitApp` of flow rules is not configured (`default`), flow control will take effects on all callers.
If `limitApp` of a flow rule is configured with a caller, then the corresponding flow rule will only take effect on the specific caller.
> Note: Dubbo consumer does not provide its Dubbo application name when doing RPC,
> so developers should manually put the application name into *attachment* at consumer side,
> then extract it at provider side. Sentinel Dubbo Adapter has implemented a filter (`DubboAppContextFilter`)
> where consumer can carry application name information to provider automatically.
> If the consumer does not use Sentinel Dubbo Adapter but requires flow control based on caller,
> developers can manually put the application name into attachment with the key `dubboApplication`.
>
> Since 1.8.0, the adapter provides support for customizing origin parsing logic. You may register your own `DubboOriginParser`
> implementation to `DubboAdapterGlobalConfig`.
> Note: The adapter provides support for customizing origin parsing logic as well.
> You may register your own `DubboOriginParser` implementation to `DubboAdapterGlobalConfig`.
## Global fallback
@ -70,6 +65,7 @@ Sentinel Dubbo Adapter supports global fallback configuration.
The global fallback will handle exceptions and give replacement result when blocked by
flow control, degrade or system load protection. You can implement your own `DubboFallback` interface
and then register to `DubboAdapterGlobalConfig`.
If no fallback is configured, Sentinel will wrap the `BlockException` as the fallback result.
Besides, we can also leverage [Dubbo mock mechanism](http://dubbo.apache.org/en-us/docs/user/demos/local-mock.html) to provide fallback implementation of degraded Dubbo services.
If no fallback is configured, Sentinel will wrap the `BlockException` with a `RuntimeException` as the fallback result.
Besides, we can also leverage [Dubbo mock mechanism](https://dubbo.apache.org/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/service-downgrade/) to provide fallback implementation of degraded Dubbo services.