메시징 솔루션은 JMS(Java Messaging Service), 아파치 카프카, AMOP, 레디스, 젬파이어, 아파치 지오드 등 매우 다양하다. 각 솔루션들은 저마다 다른 관심사에 최적화돼 있다.
자바의 복잡도 감소를 위해 스프링 프레임워크의 설계 목표는 무엇보다도 애플리케이션을 만드는 방법을 단순화하는 것이다. 이를 달성하는 가장 강력한 수단 중 하나가 템플릿 패턴이다. 템플릿이란 특정 API의 모든 복잡성을 가장 단순한 연산으로 축약하는 것을 의미한다. 대표적으로 JdbcTemplate을 활용하면 몇 가지 연산만 사용해서 데이터 조회와 수정을 처리할 수있다.
강력한 템플릿 패턴은 MailSender, JndiTemplate, HibernateTemplate 등 여러 영역에서 사용되고, 다음과 같은 비동기 메시징에서도 사용된다.
- JMS
자바 표준 메시지 API. 스프링 프레임워크는 JMS 브로커를 사용한 메시지 송신과 수신을 쉽게 처리할 수 있도록 JmsTemplate과 DefaultMessageListenerContainer를 제공한다.
- 아파치 카프카
빠른 속도로 대세로 자리 잡고 있는 브로커. 스프링 아파치 카프카(Spring Apache Kafka)는 메시지 송수신을 쉽게 처리할 수 있도록 KafkaTemplate과 KafkaMessageListenerContainer를 제공한다.
- RabbitMQ
높은 처리량과 강한 회복력이 특징인 메시지 브로커이다. 스프링 AMOP는 AmqpTemplateSimpleMessageListenerContainer를 제공한다.
- 레디스
빠른 속도를 무기로 가장 널리 사용되는 브로커이다. 스프링 데이터 레디스(Spring Data Redis)는 RedisMessageListenerContainer를 제공한다.
'Develop > Spring˙Spring Boot' 카테고리의 다른 글
[Spring Reactive] Spring Boot에서 R Socket 사용하기 (0) | 2023.03.23 |
---|---|
[Spring Reactive] RabbitMQ를 이용해 메시지 브로커 사용하기 (0) | 2023.03.21 |
[Spring Reactive] 리액티브 테스트 작성하기 (0) | 2023.03.13 |
[Spring Reactive] 리액티브 데이터 Repository 정의하기 (0) | 2023.03.12 |
[Spring Reactive] 리액티브 데이터베이스 저장 요건 (0) | 2023.03.10 |