> Java > java지도 시간 > 백엔드 마이크로서비스 Webflux(Reactor-core)용 Java 라이브러리 소개

백엔드 마이크로서비스 Webflux(Reactor-core)용 Java 라이브러리 소개

Barbara Streisand
풀어 주다: 2025-01-12 14:05:46
원래의
308명이 탐색했습니다.

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

깃허브 링크: https://github.com/hoangtien2k3/reactify-core

1. 도서관 개요

이 라이브러리는 반응형 프로그래밍을 지원하는 두 가지 강력한 도구인 Spring WebFlux 및 Reactor-Core의 핵심 구성 요소를 기반으로 구축되었습니다. 이 라이브러리를 사용하면 비동기식 마이크로서비스 애플리케이션을 쉽게 구축하여 비선형 데이터 스트림을 효율적으로 처리할 수 있습니다.

주요 기능은 다음과 같습니다.

  • 완전한 반응형 프로그래밍 지원: 스트림 기반 비동기 데이터 처리
  • 고성능 최적화: 필요한 스레드 수를 최소화하고 CPU 리소스를 최대화합니다.
  • 쉬운 확장성: 대량의 사용자 요청을 처리해야 하는 마이크로서비스 시스템에 적합합니다.

2. 도서관의 장점

  1. 뛰어난 성능과 우수한 반응성:
    비차단 메커니즘을 사용하는 이 라이브러리는 너무 많은 스레드를 생성하지 않고도 수천 개의 동시 요청을 처리할 수 있으므로 리소스 로드가 줄어들고 응답 속도가 향상됩니다.

  2. 간편한 스트림 처리:
    Reactor-Core는 실시간 알림 시스템, 이벤트 처리, 빅데이터 처리 시스템 등 지속적인 데이터 처리가 필요한 애플리케이션에 적합한 스트림 처리를 위한 강력한 API를 제공합니다.

  3. Spring 생태계와의 손쉬운 통합:
    이 라이브러리는 Spring Security, Spring Data R2DBC 등 Spring 생태계의 구성 요소와 잘 작동하도록 설계되어 적은 노력으로 완전한 애플리케이션을 구축하는 데 도움이 됩니다.

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

반응 코어 설정

1. @ComponentScan 주석을 사용하여 모든 라이브러리를 스캔합니다.

@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);
    }
}
로그인 후 복사

2. 프로젝트 파일 application.yml 또는 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
로그인 후 복사

3. 구성을 완료한 후 프로젝트 실행을 시작합니다.

  # Using Maven
  mvn spring-boot:run

  # Using Gradle
  gradle bootRun
로그인 후 복사

4. 다음 프로젝트를 참조하십시오.

webflux 마이크로서비스 프로젝트용 reactify-core 라이브러리: keycloak-auth-service

누구나 피드백을 제공하고 오류를 찾아내거나 이 라이브러리를 개선하여 커뮤니티를 더욱 강력하게 발전시킬 수 있습니다. 정말 감사합니다
좋은 하루 보내세요

위 내용은 백엔드 마이크로서비스 Webflux(Reactor-core)용 Java 라이브러리 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿