Pub/Sub 메시지 동작 및 속성
메시지에는 게시자가 전송하고 주제를 통해 구독자에게 전달되는 실제 데이터 개체가 포함되어 있습니다. 예를 들어, 일부 가입자는 회사의 주문 세부정보에 관심이 있습니다. 게시자가 m을 게시할 수 있도록 주제가 생성됩니다.
게시자가 주제에 메시지를 게시하면 등록된 구독자에게 관심과 관련된 메시지가 게시되었음을 알립니다. 여러 메시지의 경우 특정 주제의 큐 내부에 순서대로 저장됩니다.
주의 사항
동일한 메시지를 여러 주제에 지정할 수 있습니다. 이것은 자동 생성된 ID를 통해 고유하게 식별됩니다.
메시지 속성
다음을 통해 메시지 배달 옵션을 지정할 수 있습니다. 배송옵션 메시지를 전달할 수 있는 방법에 대한 열거형입니다. 다음은 에서 제공하는 두 가지 배송 옵션입니다. NCache:
모든: 등록된 모든 가입자에게 메시지가 전달됩니다.
어느: 메시지는 등록된 단일 가입자에게 전달됩니다. 승인이 수신되지 않으면 메시지는 다음 구독자에게 재할당됩니다. 승인을 받으면 메시지가 제거됩니다.
메시지 동작
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. Enterprise Edition.
다음 기준이 충족되는 경우 메시지가 무효화됩니다.
축출: 캐시에서 축출이 활성화된 경우 LRU(최근 사용), LFU(최소 자주 사용) 또는 우선 순위 기반 정책을 사용하여 주제에서 메시지도 축출됩니다.
Pub/Sub 트랜잭션에 사용되는 캐시가 일반 캐싱에 사용되는 캐시와 동일한 경우 제거의 첫 번째 우선 순위는 항상 캐시 데이터입니다.
제거에 캐시 데이터를 사용할 수 없으면 메시지가 제거됩니다. 이렇게 하면 극단적인 경우나 캐시가 Pub/Sub 전용인 경우에만 메시지가 제거됩니다.
만료: 캐시 항목과 마찬가지로 메시지에 만료를 활성화할 수 있습니다. 만료 간격이 지나고 동일한 정리 간격 메커니즘을 사용하는 즉시 메시지가 캐시에서 만료됩니다.
캐시 지우기: 캐시가 지워지면 캐시 항목과 함께 메시지가 제거됩니다.
캐시 재시작: 캐시 지우기와 마찬가지로 캐시를 다시 시작하면 캐시 내용이 지워집니다. 여기에는 모든 주제와 그 안에 포함된 메시지도 포함됩니다.
보관 및 유통
메시지는 토폴로지를 기반으로 노드 간에 분산됩니다.
Partition of Replica 및 Partitioned 토폴로지의 경우 해시 기반 배포가 사용됩니다.
복제된 토폴로지의 경우 메시지는 클러스터된 캐시의 모든 노드에 복제됩니다. 그러나 코디네이터 노드는 메시지 조작을 담당합니다.
미러 토폴로지의 경우 메시지가 활성 노드에 게시된 다음 그에 따라 수동 노드에 복제됩니다.
메시지 저장소가 제거에 가까워지면 저장소가 가득 차고 제거가 시작되었음을 나타내는 이벤트가 기록됩니다.
메시지에는 캐시 메모리에 대한 오버헤드가 있습니다. 따라서 캐시 크기를 계산할 때 메시지 크기를 고려합니다.
암호화 및 압축
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. Enterprise Edition.
캐시 수준에서 구성된 암호화 및 압축은 주제 메시지 페이로드에도 적용됩니다.
국가 이전
상태 전송의 경우 메시지가 클러스터의 다른 노드로 이동하면 메시지가 최종적으로 저장된 노드가 전달을 담당합니다.
주의 사항
상태 전송 중에 가입자가 중복 메시지를 수신할 가능성이 있습니다.
주문된 메시지
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. NCache 5.2 이상.
NCache 이제 메시지 순서가 클라이언트 측에서 유지 관리되는 정렬된 메시지를 지원합니다. 사용자는 메시지 청크에 대한 시퀀스 이름을 지정할 수 있으며 정렬된 메시지는 발행된 것과 똑같은 순서로 구독자에게 전달됩니다. 시퀀스 문자열은 정렬된 메시지 체인에 대해 동일해야 합니다. 시퀀스 문자열을 사용하면 위치 선호도 메커니즘을 사용하여 모든 메시지가 동일한 노드에 있습니다.
다음은 정렬된 메시지의 중요한 특성입니다.
동일한 시퀀스를 가진 게시자의 메시지는 단일 캐시 노드에 있습니다.
경우
DeliveryOption
Any로 설정하면 동일한 시퀀스의 모든 정렬된 메시지가 동일한 구독자에게 전달됩니다. 특정 가입자의 연결이 끊기거나 사용할 수 없게 되는 경우 이를 위해 새 가입자가 재할당됩니다. 그러나 만약DeliveryOption
가 모두로 설정되면 동일한 순서의 모든 정렬된 메시지가 모든 구독자에게 전달됩니다.상태 전송의 경우 순서가 지정된 메시지는 순서를 잃고 순서를 유지하지 않고 게시될 수 있습니다.
정렬된 메시지는 Publish API의 동기화 모드를 통해서만 게시할 수 있습니다. 대량 및 비동기 API 호출은 지원되지 않습니다.
추가 자료
NCache Pub/Sub용 샘플 애플리케이션 제공 GitHub의.