본문 바로가기

webflux5

SpringBoot에서 MQTT Client + WebFlux 구축 WebFlux를 적용한 MQTT Client를 구축하고Topic 메시지 도착 시 Callback으로 Bean을 통해 서비스 구분*Mqtt Broker(mosqitto) 아래 관련 글 참고*자세한 설명 생략  ▷ Project 전체 구조*파일 이름으로 검색 가능   ▷ build.gradle   ▷ application.properties   ▷ MqttApplication.java*아무 작업하지 않음   ▷ MqttPublishVO.java*MqttController 발행 요청 VO   ▷ MqttSubscribeVO.java*MqttController 구독 요청 VO   ▷ MqttController.java   ▷ UserController.java   ▷ MqttService.java   ▷ A/B.. 2022. 12. 2.
Sinks.many() 란? EmitterProcessor가 @Deprecated 돼서 Sinks.many()로 대체 사용*EmitterProcessor 내부에서 Sinks를 사용하고 있음*Processor : 처리 단계를 나타내며 발행자 인터페이스와 구독자 인터페이스를 모두 상속*자세한 설명 생략  ▷ Sinks.many() - 데이터를 구독 받고, 구독한 데이터를 다시 발행할 때 사용- 여러 subscriber가 사용할 수 있는 구독과 발행이 동시에 일어나는 프로세서- 내부 queue를 가지고 있어 subscriber가 없더라도 해당 데이터를 큐에 쌓음 종류설명unicast()하나의 Subscriber만 허용(즉, 하나의 Client 만 연결)multicast()여러 Subscriber를 허용multicast().onBackpr.. 2022. 11. 29.
Spring WebFlux Non-Blocking 방법 Mono, Flux를 이용했다고 Non-Blocking이 되진 않는다.*Thread Pool을 통해서도 가능*WebClinet 생략*자세한 설명 생략  ▷ Reactor Thread 지정* 동일한 Thread를 사용하지 않도록 Reactor에게 Thread 지정 종류설명subscribeOn()- 스트림을 구독할 때 동작을 지정한 Thread Pool에서 수행할 수 있도록 설정*subscription process에 적용publishOn()- publishOn 이전의 모든 것은 Main Thread에 의해 실행*subscribeOn 과 유사하지만 중요한 차이점은 다운스트림에서 실행- subscriber가 처리하는 부분인 onNext() / onComplete() / onError()를 지정한 Thread .. 2022. 11. 29.
R2DBC 란? * 자세한 설명 생략  ▷ R2DBC 란? Spring Webflux(Reactive Programming)로 서비스를 구축할때 DB 사용이 필요한 경우 R2DBC를 사용하여 RDB에 Non-Blocking 접근 가능 *기존 RDB 접근은 Blocking이기때문에, 완전한 Non-Blocking 서비스 구축 불가  ▷  지원 되는 RDB *2022.11.11 기준     - H2     - MariaDB     - Microsoft SQL Server    - MySQL     - jasync-sql MySQL     - Postgres     - Oracle   ▷ 참고 Spring Data R2DBCSpring Data R2DBC, part of the larger Spring Data family,.. 2022. 11. 11.
Spring WebFlux 란? * 자세한 설명 생략   ▷ WebFlux란? - Spring WebFlux는  Spring 5에서 새롭게 추가된 모듈 - Reactive-stack Web Framework이며 non-blocking의 reactive stream을 지원- Flux와 Mono라는 두 종류의 Publisher와 Cold, Hot 방식 존재- WebFlux는 WebClient를 포함하고 있고 Spring MVC 기반으로 Rest Template을 WebClient로 사용 가능  ▷ Spring MVC vs Spring WebFlux Spring MVCSpring WebFlux Servlet Stack  Reactive StackBlocking : 처리결과를 기다림  Non-Blocking : 처리결과를 기다리지 않음동기(S.. 2022. 11. 8.
728x90
728x90