.NET Remoting - перенаправление сообщений / избыточность хоста - PullRequest
1 голос
/ 04 июня 2010

Я пытаюсь выполнить некоторую форму перенаправления сообщений в .NET Remoting. альтернативный текст http://i47.tinypic.com/wlt4y9.jpg

Как вы можете видеть на изображении, я хотел бы, чтобы клиент отправил сообщение поставщику (который является единственным URI, о котором должен знать клиент), который затем перенаправит его на host1. Вот сложная часть; провайдер будет следить за тем, какой хост является живым (путем предоставления хостам метода регистрации / отмены регистрации), другими словами, провайдер должен иметь возможность динамически изменять, на какой URI он должен перенаправить сообщение.

Я пытался решить эту проблему путем создания хоста в провайдере, которому клиент отправляет сообщения, а затем клиента (в провайдере), который реализует собственный прокси ( путем наследования от RealProxy ), который будет перенаправлять сообщения на текущий предпочтительный хост. Однако я продолжаю возвращаться к проблеме динамического изменения URI, и у меня возникает ощущение, что я просто упускаю какую-то простую, но жизненно важную часть, которая решит эту проблему, не превращая ее в большого волосатого монстра.

Любые советы / подсказки будут высоко оценены!

1 Ответ

0 голосов
/ 04 июня 2010

Для дальнейшего использования я использую другой упрощенный подход к этому. Поставщик будет удален, и вместо этого клиент попытается получить доступ к host1 напрямую. В случае SocketException, который он получит, когда хост не отвечает, поместите его в карантин на X минут и попробуйте использовать следующий хост. Если все хосты не работают, повторно выведите исключение.

...