작업 : 여러 인스턴스에서 실행할 수있는 C# .net을 사용하여 콘솔 앱을 만들어야합니다. (확장 성 목적으로)C#에서 다중 인스턴스 응용 프로그램을 설계하는 방법은 무엇입니까?
스트레이트 포워드 응용 프로그램을 만들면 이제 간단합니다. 내 문제는 지금 내 애플 리케이션에 전역 변수가 있습니다. 이 앱이 무엇인지 생각해보십시오. 이것은 JSON 메시지를받는 작은 프로그램입니다 (메시징 부분에 RabbitMQ를 사용했습니다). 수신 한 메시지는 전역 변수에 저장됩니다. 이제는 여러 인스턴스에서 앱을 실행하기가 어렵습니다. 앱의 인스턴스를 두 개 이상 실행하면 다른 앱에서 메시지를받을 수 있기 때문일 수 있습니다. 그것은 RabbitMQ의 라운드 로빈 동작 때문입니다. (Exchange 만들기 또는 라우팅 키는 옵션이 아닙니다.)
공유 메모리 또는 MemoryMappedFile을 사용해 보았지만 작동하지 않습니다.
내가 마음에 가지고있는 또 다른 한 가지는 DB를 사용하는 것입니다. 하지만 이렇게하려면 좋은 디자인이 필요합니다. 누군가가 패턴, 예제 또는 기타 참조를 알고있는 경우. 알려줘.
귀하의 답변은 높이 평가됩니다.
귀하의 의도에 대한 자세한 정보를 제공해 주시겠습니까? 여러 인스턴스가있는 메시지를 처리 하시겠습니까? 뭔가를 병렬 처리 하시겠습니까? – Dusan
안녕하세요 @ 두산, 여러 개의 인스턴스에서 메시지를 처리하는 것과 비슷합니다. (방식으로). 그래서 여기에 문제가 있습니다, 나는 RabbitMQ를 사용하고 있습니다. 내 응용 프로그램이 대기열에서 소모됩니다. 응용 프로그램의 여러 인스턴스를 실행하면 대기열에 2 명의 사용자가 있음을 의미합니다. 이제 메시지가 대기열로 들어옵니다. 첫 번째 앱으로 이동하고 다른 메시지가 오면 두 번째 앱으로 이동합니다. (라운드 로빈 패션). 이제 2 차 앱에서 얻을 수있는 메시지가 동일한 메시지 일 수 있으므로 ID를 사용하여 해당 메시지가 이미 존재하는지 확인하는 방법을 찾아야합니다. –
OK, clear ... – Dusan