스트림2 [Spring Reactive] Spring Boot에서 R Socket 사용하기 TCP를 기반으로 하는 R소켓을 이용해서 서로 다른 시스템을 리액티브 하게 연결하는 방법을 알아보자. org.springframework.boot spring-boot-starter-rsocket 이 의존관계를 통해 다음 기능이 프로젝트에 추가된다. R소켓: 자바로 구현된 R소켓 프로토콜 리액터 네티: 네티는 리액티브 메시지 관리자 역할도 충분히 수행할 수 있다. 리액터로 감싸져서 더 강력한 서버로 만들어졌다. 스프링+잭슨: 메시지가 선택되고 직렬화되며 전송되고 역직렬화되고 파우팅되는 것은 프로토콜의 리액티브 속성만큼이나 중요하다. R소켓 서버 생성 @Service public class RSocketService { private final ItemRepository repository; // priv.. 2023. 3. 23. R Socket이란 무엇일까? 리액티브 스트림의 근간을 다루는 개념은 바로 배압(backpressure)이다. 하지만 HTTP는 리액티브하지 않다. HTTP는 요청-응답 패러다임에 뿌리를 두고 있다. 과거의 개발자들은 HTTP를 사용하는 단순 요청-응답을 넘어서 터널로 서로 연결하는 방법을 고민해왔다. > 첫 번째, 롱 폴링 클라이언트가 서버에 요청을 보낸 후 즉각적인 대답을 기대하지 않고, 오래 기다리더라도 서버의 응답을 기다린다. 응답을 받으면 처리하고 바로 새로운 요청을 서버에 보내 기다리는 식으로 연결 지속성을 확보한다. 하지만 자원을 점유한다는 한계가 있다. > 두 번째, 웹소켓 웹소켓은 HTTP와는 다르게 양방향이다. 가볍고 양방향 비동기 통신을 지원하지만 배압 개념이 없으므로 리액티브하지 않다. RSocket 리액티브 프.. 2023. 3. 20. 이전 1 다음