Альтернативы .NET для UDP Multicast - PullRequest
0 голосов
/ 08 января 2010

Я ищу альтернативу использованию многоадресной передачи UDP в .NET Framework и ищу предложения.

Мне нужно отправлять сообщения на несколько веб-серверов, на которых запущено несколько приложений ASP.NET. Эти сообщения будут только односторонними, поступающими с нескольких разных машин. UDP многоадресная рассылка была бы идеальной, за исключением того, что я не могу использовать ее из-за административных прав. Подробнее о причинах см. Проблемы ASP.NET Multicast UdpClient .

Есть ли что-то еще, что могло бы работать аналогичным образом, позволяя нескольким приложениям получать сообщения широковещательного типа?

Ответы [ 5 ]

1 голос
/ 15 декабря 2010

ØMQ имеет две привязки CLR , которые могут оказаться более производительными, чем развертывание собственного уровня обмена сообщениями. Вы можете использовать сокеты PUB / SUB для многоадресной рассылки сообщений по TCP или IP по желанию. Кроме того, поскольку библиотека является внешней по отношению к ASP.net, это должно устранить проблему с ограниченными правами, с которой вы столкнулись.

1 голос
/ 08 января 2010

На ум приходит несколько вариантов:

  1. Поместите свой UDP-код многоадресной рассылки в службу Windows. При наличии только одного прослушивателя на порту вам не потребуются повышенные разрешения. Вы можете общаться со службой, используя разделяемую память или ряд других методов.

  2. Использование асинхронных необработанных соединений TCP-точка-точка с центральным узлом отправки / ретрансляции сообщений. Отправка и получение сообщений с асинхронным вводом-выводом минимизируют время ожидания.

  3. Используйте постоянный механизм очередей, такой как Service Broker в SQL Server. Это все еще одноадресная передача, но у вас может быть одна хранимая процедура, которая отправляет сообщения на все конечные точки. Опять же, используйте асинхронный ввод-вывод, чтобы минимизировать время ожидания.

  4. Используйте коммерческую шину для передачи сообщений, которая выходит из строя - что-то вроде Tibco Rendezvous.

1 голос
/ 08 января 2010

Рассматривали ли вы использование MSMQ или базы данных SQL? Используя базу данных SQL 2008, вы также можете заставить сервер SQL уведомлять вас об изменениях.

0 голосов
/ 03 апреля 2016

Redis pubsub с использованием API StackExchange.Redis .

Простая, отличная производительность, масштабируемая и, если вы выберете ее, вы обязательно будете использовать ее для других целей, таких как кэширование / управление сессиями / мониторинг или для любого другого использования этого набора инструментов швейцарского армейского ножа.

0 голосов
/ 24 ноября 2010

ActiveMQ - это бесплатный сервис, такой как msmq. Он может обрабатывать недолговечные сообщения, такие как ваше. Недостатком является то, что для этого требуется сервер, потому что он в основном использует стиль спицы и концентратора, когда у вас есть центральный сервер. Но он хорошо работает в .NET и имеет отличную производительность. Я отправляю сотни сообщений по нему в секунду, и он отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...