doc: Update README for new adapter modules
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
parent
044cdbb1bf
commit
1a482b1d9f
|
|
@ -0,0 +1,23 @@
|
|||
# Sentinel Reactor Adapter
|
||||
|
||||
> Note: this module requires Java 8 or later version.
|
||||
|
||||
Sentinel provides integration module for [Reactor](https://projectreactor.io/).
|
||||
|
||||
Add the following dependency in `pom.xml` (if you are using Maven):
|
||||
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>com.alibaba.csp</groupId>
|
||||
<artifactId>sentinel-reactor-adapter</artifactId>
|
||||
<version>x.y.z</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```java
|
||||
someService.doSomething() // return type: Mono<T> or Flux<T>
|
||||
.transform(new SentinelReactorTransformer<>(resourceName)) // transform here
|
||||
.subscribe();
|
||||
```
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
# Sentinel Spring WebFlux Adapter
|
||||
|
||||
> Note: this module requires Java 8 or later version.
|
||||
|
||||
Sentinel provides integration module with Spring WebFlux, so reactive web applications can also leverage Sentinel's flow control
|
||||
and circuit breaking to achieve reliability. The integration module is based on the Sentinel Reactor Adapter.
|
||||
|
||||
Add the following dependency in `pom.xml` (if you are using Maven):
|
||||
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>com.alibaba.csp</groupId>
|
||||
<artifactId>sentinel-spring-webflux-adapter</artifactId>
|
||||
<version>x.y.z</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
Then you only need to inject the corresponding `SentinelWebFluxFilter` and `SentinelBlockExceptionHandler` instance
|
||||
in Spring configuration. For example:
|
||||
|
||||
```java
|
||||
@Configuration
|
||||
public class WebFluxConfig {
|
||||
|
||||
private final List<ViewResolver> viewResolvers;
|
||||
private final ServerCodecConfigurer serverCodecConfigurer;
|
||||
|
||||
public WebFluxConfig(ObjectProvider<List<ViewResolver>> viewResolversProvider,
|
||||
ServerCodecConfigurer serverCodecConfigurer) {
|
||||
this.viewResolvers = viewResolversProvider.getIfAvailable(Collections::emptyList);
|
||||
this.serverCodecConfigurer = serverCodecConfigurer;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Order(-1)
|
||||
public SentinelBlockExceptionHandler sentinelBlockExceptionHandler() {
|
||||
// Register the block exception handler for Spring WebFlux.
|
||||
return new SentinelBlockExceptionHandler(viewResolvers, serverCodecConfigurer);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Order(-1)
|
||||
public SentinelWebFluxFilter sentinelWebFluxFilter() {
|
||||
// Register the Sentinel WebFlux filter.
|
||||
return new SentinelWebFluxFilter();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can register various customized callback in `WebFluxCallbackManager`:
|
||||
|
||||
- `setBlockHandler`: register a customized `BlockRequestHandler` to handle the blocked request. The default implementation is `DefaultBlockRequestHandler`, which returns default message like `Blocked by Sentinel: FlowException`.
|
||||
- `setUrlCleaner`: used for normalization of URL. The function type is `(ServerWebExchange, String) → String`, which means `(webExchange, originalUrl) → finalUrl`.
|
||||
- `setRequestOriginParser`: used to resolve the origin from the HTTP request. The function type is `ServerWebExchange → String`.
|
||||
|
||||
You can also refer to the demo: [sentinel-demo-spring-webflux](https://github.com/alibaba/Sentinel/tree/master/sentinel-demo/sentinel-demo-spring-webflux).
|
||||
Loading…
Reference in New Issue