Page History
Info |
---|
RestAPI와 WebSocket의 개발방식의 차이인 StateFul과 Stateless를 먼저알아보고 Reactive 웹소켓을 액터모델과 연동했을때 장점과 확장가능한 샘플코드를 살펴보겠습니다. Let't go |
Stateful VS Stateless
REST API (Stateless 방식)
...
🚀 즉, 성능과 확장성이 중요한 경우 WebFlux, 익숙한 개발 방식과 기존 시스템 통합이 중요한 경우 MVC 웹소켓을 선택하는 것이 좋습니다.
Note |
---|
액터모델이 국내에 개발패턴으로 잘 안알려져 있기도하고 레퍼런스가 부족하지만 이미 성공한 메시징/메신저/통신 테크기업들이 액터모델을 직접 채택하거나 액터모델이 내재화된 프레임워크를 사용하고 있는 것으로 추정합니다. |
🔹 액터 모델을 채택한 메시징/메신저 시스템
...
- 기술 스택: Erlang
- 특징:
- 메시지 브로커로 사용되지만, 내부적으로 Erlang의 액터 모델을 활용하여 높은 동시성 처리 가능
- AMQP 프로토콜을 사용하여 안정적인 메시지 큐 제공
- 장점:
- 메시징 시스템에 최적화
- 확장 가능하며, 분산 아키텍처에서 활용 가능
6. Apache Flink
- https://docs.aws.amazon.com/ko_kr/managed-flink/latest/java/what-is.html
- https://docs.aws.amazon.com/ko_kr/managed-flink/latest/java/flink-1-18.html
- Akka(Pekko)가 코어처리 모듈로 채택됨
7. Ray
- https://docs.ray.io/en/latest/ray-core/actors.html
- OpenAI가 ML 파이프라인용으로 채택해 알려진 ray도 액터 프레임워크입니다. ( 파이썬진영 )
🚀 분석: 액터 모델과 웹소켓 연동의 장점
이 코드는 Akka (현재 Apache Pekko) 기반 액터 모델을 활용하여 **웹소켓을 관리하는 세션 관리자(SessionManagerActor)**를 구현한 것입니다.
액터 모델이 웹소켓과 연동될 때 가지는 장점은 다음과 같습니다.
...
💡 예제 코드 적용:
onSubscribeToTopic
→ 클라이언트가 특정 토픽을 구독하면 세션 ID를 저장onSendMessageToTopic
→ 해당 토픽을 구독한 모든 세션에 메시지를 전송
샘플코드
- 샘플코드
- base : pub/sub을 로컬클래스 모델로 구현한 기본 Reactive 사용법입니다.
- actor : base버전의 로컬클래스 모델을 로컬액터모델로 변환한 ActorModel버전입니다.
확장