sl-express/sentinel/sentinel-adapter/sentinel-quarkus-adapter/README.md
shuhongfan cf5ac25c14 init
2023-09-04 16:40:17 +08:00

3.1 KiB

Sentinel Quarkus Adapter

Sentinel provides sentinel-annotation-quarkus-adapter and sentinel-jax-rs-quarkus-adapter to adapt sentinel-annotation-cdi-interceptor and sentinel-jax-rs-adapter for Quarkus.

The integration module also provides sentinel-native-image-quarkus-adapter to support running Sentinel with Quarkus in native image mode.

To use sentinel-jax-rs-quarkus-adapter, you can simply add the following dependency to your pom.xml:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-jax-rs-quarkus-adapter</artifactId>
    <version>x.y.z</version>
</dependency>

To use sentinel-annotation-quarkus-adapter, you can simply add the following dependency to your pom.xml:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-annotation-quarkus-adapter</artifactId>
    <version>x.y.z</version>
</dependency>

When Quarkus application started, you can see the enabled feature like:

INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, sentinel-annotation, sentinel-jax-rs]

For Quarkus native image

If you want to integrate Quarkus with Sentinel while running in native image mode, you should add the following dependency to your pom.xml:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-native-image-quarkus-adapter</artifactId>
    <version>x.y.z</version>
</dependency>

And then add --allow-incomplete-classpath to quarkus.native.additional-build-args.

If you're using sentinel-jax-rs-quarkus-adapter, you'll need to set quarkus.native.auto-service-loader-registration to true.

When Quarkus application started, you can see the enabled feature like:

INFO  [io.quarkus] (main) Installed features: [cdi, resteasy, sentinel-annotation, sentinel-jax-rs, sentinel-native-image]

For more details you may refer to the pom.xml of sentinel-demo-quarkus.

Limitations

sentinel-native-image-quarkus-adapter currently relies on sentinel-logging-slf4j to help Sentinel run in native image mode easily, because quarkus-core provides Target_org_slf4j_LoggerFactory to substitute getLogger method.

Currently sentinel-transport-simple-http can work in native image mode, while sentinel-transport-netty-http cannot work in native image mode without extra config or substitutions.

References for build native image or AOT