任務:需要使用可以在多個實例上運行的c#.net創建控制檯應用程序。 (爲了可擴展性)如何在C#中設計多實例應用程序?
現在,如果您創建一個簡單的應用程序,這很容易。我現在的問題是在我的應用程序中,我有一個全局變量。給你一個這個應用程序是什麼的想法。這是一個接收JSON消息的小程序(我使用RabbitMQ作爲消息傳遞部分)。它接收到的消息將存儲在全局變量中。現在,這使得很難在多個實例上運行應用程序。因爲如果您運行的應用程序不止一個實例,則可能是該消息會在其他應用程序上收到。這是因爲RabbitMQ的Round Robin行爲。 (創建Exchange或路由密鑰不是一個選項。)
我試過使用共享內存或MemoryMappedFile,但這也不起作用。
我想到的另一件事是使用數據庫。但我需要很好的設計才能做到這一點。 如果有人知道一個模式,一個例子或任何參考。讓我知道。
您的回覆非常感謝。
您能否提供一些關於您的意圖的更多信息?你是否希望處理多個實例的消息?你想平行或不平行? – Dusan
Hi @Dusan,更像是處理多個實例上的消息。 (在某種方式)。所以這裏是我用的RabbitMQ。我的應用程序正在使用隊列。如果您運行應用程序的多個實例,這意味着您的隊列中將有2個消費者。現在,當消息進入該隊列時。它會去你的第一個應用程序,當另一個消息進來時,它會去第二個應用程序。 (循環時尚)。現在可能是你在第二個應用程序上得到的那個消息是相同的消息,所以我需要一種方法來查看使用ID是否已經存在該消息。 –
好吧,足夠清楚了...... – Dusan