전체 공개 : 나는 Service Fabric 개발을 처음 사용합니다. 여기에 내 상황이있다. 서비스 패브릭 클러스터가 있습니다. 우리는 거기에 상태있는 서비스를 배포했습니다. 서비스가 수신 대기중인 서비스 버스 큐를 지정했습니다. 따라서 클러스터의 모든 노드에있는 모든 서비스 인스턴스는 동일한 서비스 버스 큐를 수신 대기합니다. 각 서비스 인스턴스는 다음과 같이 메시지를 처리하기 위해 서비스 버스 큐의 onMessage 콜백을 등록 : 이제서비스 패브릭 클러스터 Statefull 서비스. 서비스 버스 큐 사용량
QueueClient Queue = QueueClient.CreateFromConnectionString(
GetServicebusConnectionString(),
ConfigData.SERVICE_QUEUE_NAME);
if (Queue != null)
{
var options = new OnMessageOptions();
options.AutoComplete = false;
Queue.OnMessage((receivedMessage) =>
ProcessMessage(receivedMessage), options);
}
를, 모든 서비스 인스턴스가 동시에 큐에 배치 된 그 메시지를 데리러 것 같습니다 로그의 메시지에 따라 . 그게 좋은 일이 아니야. 질문은 다음과 같습니다
는 큐에서 각 메시지는 하나 개의 서비스 인스턴스에 의해 선택 될 수있는 방식으로 서비스 버스 큐를 사용할 수 있습니까?
글쎄, 내 눈이 멀었다. 나는 Abandon 메서드를 호출하여 데드 레터 큐에 메시지를 보낼 것이라고 생각했습니다. :) Deadletter 메서드로 전환하면 모든 것이 마술처럼 다시 시작되었습니다. 올바른 방향으로 나아갈 수 있도록 도와 주셔서 감사합니다. – fatherOfWine