Messenger 채팅 봇을 클라우드 환경에 작성하는 맥락에서 몇 가지 동시성 문제가 있습니다.채팅 봇 : 클러스터 된 환경에서 대화 단위로 메시지를 직렬 처리하도록 보장
특히, 동일한 대화의 수신 메시지가 하나씩 처리되도록하고 싶습니다.
제약 조건으로 Cloud 환경에서 작업자와 메시지를 처리하고 있습니다 (예 : 작업자 풀의 크기가 가변적이며 작업 인스턴스가 수명이 짧아서 충돌 할 수 있습니다). 또한 대기 시간도 중요합니다.
그래서 조금 추상화, 내 요구 사항은 다음과 같습니다
- 나는 수신 메시지
- 의 흐름이 이러한 메시지 중 각각 '주제 키'(대화 ID)의
- 세트를 가지고 주제를 미리 알 수 없으며 사실상 무한합니다.
- 같은 주제의 메시지가 순전히 처리되도록하려는 경우
- 잠정적 인 임시 작업자 클러스터에
- 가능한 경우 각 메시지가 정확히 한 번 처리되도록하는 등의 신뢰성 보장을 원합니다.
내 질문은 :
- 이름이 동시성 시나리오이 있습니까?
- 이 상자를 즉시 구현하는 기술 (메시지 브로커, 조정 서비스 등)이 있습니까?
- 그렇지 않은 경우, 무엇을 낮은 수준의 동시성 도구 위에 구현할 수 있습니까? (분산 자물쇠, 배우, 대기열 등)
감사합니다. ActiveMQ 또는 HornetQ에 의해 구현 된 메시지 그룹화가 필요한 항목입니다. –
나는 내 자신의 검색으로 답을 완성 할 자유를 얻었다. –