webflux
-
Spring boot + Kotlin Coroutine + WebFlux + Security 5 + MySQL 기본 셋업컴퓨터/Spring Boot 2024. 3. 18. 21:31
Spring boot 2.7에서 kotlin coroutine을 써서 webflux를 사용할 것이다. (JDK 17) 시큐리티는 기본 셋업에 R2DBC MySQL을 써서 연결했다. gradle-kts 버전이다. MySQL 테이블 Geolocation Spatial 타입을 갖고 있는 간단한 table이다. CREATE TABLE Markers ( MarkerID INT AUTO_INCREMENT PRIMARY KEY, UserID INT NULL, Location POINT NOT NULL SRID 4326, -- SRID Description VARCHAR(255), CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UpdatedAt TIMESTAMP DEFAULT CU..
-
Spring boot: websocket 서버 확장 도전 및 Kafka컴퓨터/Kafka 2023. 12. 24. 13:23
소개 같은 Spring boot 웹소켓 서버 (실시간 채팅을 위한)를 scale-out 하는 (같은 서버를 여러 다른 포트에서) 과정을 담았다. 문제 여기서 마주친 문제는, 여러 다른 포트에서 열린 웹소켓 서버에서 같은 하나의 채팅 방에 있는 유저들끼리 어떻게 통신할 수 있을까? (예: 8081 포트 서버에서 "spring"이란 채팅 방, 8082 포트 서버에서 "spring"이란 채팅 방, 서로 같은 메시지를 봐야 한다.) Sticky Session 처음 떠올린 건 스티키 세션이다. 사용자를 특정 서버 인스턴스에 '고정'해서, 모든 요청이 같은 서버로 라우팅 되도록 하는 기술이다. (세션 데이터 일관성 유지) 웹소켓의 경우, 연결이 한 번 맺어지면 계속 유지되므로, 스티키 세션의 효과가 제한적일 수 있..