Использование служебной шины для отправки сообщений из веб-роли во все другие веб-роли - PullRequest
3 голосов
/ 26 марта 2012

Я разрабатываю бэкэнд, который позволяет пользователям устанавливать с ним сокет TCP и отправлять / получать данные по этому сокету (используя созданный мной псевдопротокол) в режиме реального времени.

Он должен быть масштабируемым, т.е. иметь архитектуру на облачном хосте.В настоящее время я оцениваю Windows Azure.

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

Этот бэкэнд является приложением, управляемым событиями - когда пользователь отправляет что-то ему, сообщение должно быть передано всем другимподключенные пользователи.

Это означает, что должен существовать надежный способ отправки сообщений из одного экземпляра веб-роли во все другие экземпляры веб-роли.Насколько я понимаю, это то, к чему относится взаимодействие между ролями.

Используя служебную шину, могут ли все экземпляры веб-ролей подписаться на тему и публиковать в ней сообщения?Таким образом, реализуя управляемые событиями требования моего распределенного приложения?

(Если нет, то я неправильно понял, о чем эта статья: http://windowsazurecat.com/2011/08/how-to-simplify-scale-inter-role-communication-using-windows-azure-service-bus/)

Я хотел бы узнать это, прежде чем углубляться в изучение C #, .NET и Windows Azure.

Спасибо за помощь.

1 Ответ

3 голосов
/ 26 марта 2012

Да, используя служебную шину, все веб-роли могут отправлять сообщения в одну тему, и каждая роль может иметь уникальные индивидуальные подписки на эту тему, так что все они получают отправленные сообщения.

Clemens Vasterреализовал расширение для SignalR, используя служебную шину.Возможно, что SignalR + Service Bus может удовлетворить потребности вашего проекта, включая реализацию сокета TCP.

http://vasters.com/clemensv/2012/02/13/SignalR+Powered+By+Service+Bus.aspx

...