Link github: https://github.com/hoangtien2k3/reactify-core
This library is built on the core components of Spring WebFlux and Reactor-Core – two powerful tools supporting reactive programming. With this library, you can easily build asynchronous microservice applications, handling non-linear data streams efficiently.
Highlight features include:
High performance and good responsiveness:
Using a non-blocking mechanism, this library can handle thousands of concurrent requests without creating too many threads, which reduces resource load and improves response speed.
Easy stream processing:
Reactor-Core provides a powerful API for stream processing, suitable for applications that need to process continuous data such as real-time notification systems, event processing, and big data processing systems.
Easy integration with the Spring ecosystem:
The library is designed to work well with components in the Spring ecosystem such as Spring Security, Spring Data R2DBC, helping to build complete applications with less effort.
@ComponentScan(basePackages = { "com.reactify.*", // add default: com.reactify.* "com.example.myproject" // varies depending on your project }) @SpringBootApplication public class ExampleApplication { public static void main(String[] args) { SpringApplication.run(Example.class, args); } }
# spring config spring: main: web-application-type: reactive allow-bean-definition-overriding: true messages: basename: i18n/messages #connect db R2DBC PostgreSQL r2dbc: url: r2dbc:postgresql://localhost:5434/auth username: admin password: admin pool: max-size: 10 initial-size: 5 # Config connect Keycloak security: oauth2: client: provider: oidc: token-uri: ${keycloak.serverUrl}/realms/${keycloak.realm}/protocol/openid-connect/token registration: oidc: client-id: ${keycloak.clientId} client-secret: ${keycloak.clientSecret} authorization-grant-type: ${keycloak.grantType} #password || #client_credentials resourceserver: jwt: jwk-set-uri: ${keycloak.serverUrl}/realms/${keycloak.realm}/protocol/openid-connect/certs keycloak: client-id: ${keycloak.clientId} # Web client config client: #keycloak keycloak: address: http://localhost:8080/realms/ezbuy-server/protocol/openid-connect name: keycloak auth: client-id: ezbuy-client client-secret: mI92QDfvi20tZgFtjpRAPWu8TR6eMHmw #notification notification: internal-oauth: true address: http://localhost:7777/v1/transmission name: notiServiceClient pool: max-size: 100 max-pending-acquire: 100 timeout: read: 60000 write: 1000 # Unauthenticated endpoints config application: http-logging: request: enable: true header: true param: true body: true response: enable: true body: true whiteList: - uri: /v1/auth/generate-otp methods: - POST - uri: /** methods: - OPTIONS - uri: /v1/auth/get-all methods: - GET data: sync-data: limit: 500 #keycloak client config keycloak: clientId: ezbuy-client clientSecret: mI92QDfvi20tZgFtjpRAPWu8TR6eMHmw realm: ezbuy-server serverUrl: http://localhost:8080 grantType: password host: localhost # minio server config minio: bucket: ezbuy-bucket enabled: true baseUrl: http://localhost:9000 publicUrl: http://localhost:9000/ezbuy-bucket accessKey: 4DoaZ0KdzpXdDlVK104t secretKey: nuRiQUIJNVygMOHhmtR4LT1etAa7F8PQOsRGP5oj private: bucket: ezbuy-private
# Using Maven mvn spring-boot:run # Using Gradle gradle bootRun
reactify-core library for webflux microservice project: keycloak-auth-service
Everyone can give feedback and find errors or improve this library to help develop the community stronger, thank you very much
Have a nice day
The above is the detailed content of Introducing Java Library for Backend Microservice Webflux (Reactor-core). For more information, please follow other related articles on the PHP Chinese website!