Maison > Java > javaDidacticiel > Présentation de la bibliothèque Java pour Backend Microservice Webflux (Reactor-core)

Présentation de la bibliothèque Java pour Backend Microservice Webflux (Reactor-core)

Barbara Streisand
Libérer: 2025-01-12 14:05:46
original
307 Les gens l'ont consulté

Introducing Java Library for Backend Microservice Webflux (Reactor-core)

Lien github : https://github.com/hoangtien2k3/reactify-core

1. Aperçu de la bibliothèque

Cette bibliothèque est construite sur les composants principaux de Spring WebFlux et Reactor-Core – deux outils puissants prenant en charge la programmation réactive. Avec cette bibliothèque, vous pouvez facilement créer des applications de microservices asynchrones, gérant efficacement les flux de données non linéaires.

Les fonctionnalités phares incluent :

  • Prise en charge complète de la programmation réactive : traitement des données asynchrones basé sur les flux.
  • Optimisation hautes performances : minimisez le nombre de threads nécessaires et maximisez les ressources CPU.
  • Évolutivité facile : convient aux systèmes de microservices qui nécessitent de traiter de grands volumes de demandes des utilisateurs.

2. Avantages de la bibliothèque

  1. Hautes performances et bonne réactivité :
    Grâce à un mécanisme non bloquant, cette bibliothèque peut gérer des milliers de requêtes simultanées sans créer trop de threads, ce qui réduit la charge des ressources et améliore la vitesse de réponse.

  2. Traitement facile du flux :
    Reactor-Core fournit une API puissante pour le traitement des flux, adaptée aux applications qui doivent traiter des données continues telles que les systèmes de notification en temps réel, le traitement des événements et les systèmes de traitement du Big Data.

  3. Intégration facile avec l'écosystème Spring :
    La bibliothèque est conçue pour fonctionner correctement avec les composants de l'écosystème Spring tels que Spring Security, Spring Data R2DBC, aidant ainsi à créer des applications complètes avec moins d'effort.

Introducing Java Library for Backend Microservice Webflux (Reactor-core)

Configuration de Reactify-Core

1. Utilisez l'annotation @ComponentScan pour analyser toutes les bibliothèques

@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);
    }
}
Copier après la connexion

2. Configurez votre fichier de projet application.yml ou application.properties

# 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
Copier après la connexion

3. Une fois la configuration terminée, commencez à exécuter le projet.

  # Using Maven
  mvn spring-boot:run

  # Using Gradle
  gradle bootRun
Copier après la connexion

4. Reportez-vous au projet suivant, utilisé

Bibliothèque Reactify-Core pour le projet de microservice Webflux : keycloak-auth-service

Tout le monde peut donner son avis et trouver des erreurs ou améliorer cette bibliothèque pour aider à développer la communauté plus forte, merci beaucoup
Bonne journée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal