2016-11-27 1 views
0

나는 RabbitMQ와 함께 MassTransit 주위에 머리를 쓰려고합니다. 기본 개념은 테스트 프로젝트에서 작동하지만 필요한 것은 다음과 같습니다.신뢰할 수없는 네트워크 환경에서 MassTransit을 구성하는 방법은 무엇입니까?

내 시스템에는 실제 생활 이벤트 (전화 통신)에 반응하는 하나 이상의 서버가 있습니다. 이 이벤트는 MassTransit과 RabbitMQ를 통해 하나 이상의 수신기가 RabbitMQ 호스트로 설정된 별도의 서버를 통해 수신 할 메시지로 변환됩니다. 여태까지는 그런대로 잘됐다.

그러나 게시자와 호스트 컴퓨터가 항상 연결되어 있다고 가정 할 수 없습니다. 게시 서버가 계속 실제 생활 이벤트를 소비하지만 이제는 메시지를 게시 할 수 없다고 가정합니다.

그래서 질문입니다 : 연결이 다시 설정 될 때까지 MassTransit에 메시지를 로컬로 저장하는 메커니즘이 있습니까? 로컬 교환을 만들려면 모든 게시 서버에도 RabbitMQ를 설치해야합니까? 그런 다음 다시 연결 한 후에 교환을 동기화해야합니다.

답변

2

아마도 상점을 구현하고 정책을 전달해야합니다. MassTransit 및 RabbitMQ를 통해 메시지를 직접 게시하는 대신 영구 저장소 (로컬 데이터베이스)에 메시지를 저장하고 이전에 저장된 메시지를 Masstransit을 통해 다른 프로세스에 위임 할 수 있습니다. 이 방법은 종종 "클라이언트 고 가용성"이라고합니다. 이것은 RabbitMQ가 구현 한 것과 같은 표준 HA (고 가용성)를 서버로 대체하지 않습니다. 그러나 이것은 서버와 같은 시나리오에서 많은 도움을 줄 수 있기 때문에 분산 시스템에서 사용하는 좋은 접근 방법입니다 (예 : RabbitMQ 서버의 문제로 인해 상점 내부에 여전히 메시지가 손실되는 경우) 따라서 일부 클라이언트의 경우 다시 처리 할 수 ​​있습니다.

관련 문제