Альтернативой, которую я обычно рекомендую, является интеграция через AMQP между вашими брокерами сообщений. Это значит, что вы можете использовать парадигму push вместо опроса (что очень мощно и масштабируемо по сравнению)!
Вы бы создали своего собственного брокера, такого как RabbitMQ, локально. Тогда вы позволите вашему интеграционному партнеру создать его. (Легко: просто скачайте ).
Если ваш партнер интегрируется из одного и того же центра обработки данных, вы можете предположить, что несколько сетевых разделений означают, что вы могли бы поделиться с брокером . С другой стороны, если вы находитесь в разных сетях, вы можете настроить посредника в режиме федерации . (Запустите rabbitmq-plugins enable rabbitmq_federation
и , укажите для другого брокера)
Теперь вы можете использовать, например, MassTransit:
ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMqRouting();
sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
// sbc.Subscribe( s => s ... );
});
, как если бы вы не делали интеграцию.
Если вы посмотрите на http://rabbitmq.mydomain.local:55672/, теперь вы найдете интерфейс администрирования для RabbitMQ. MassTransit создает обмен для каждого типа сообщений (отправка такого сообщения на этот обмен будет распространяться среди всех подписчиков), для которого вы можете установить правила авторизации.
Правила авторизации могут быть в форме регулярного выражения для пользователя или могут быть интегрированы в LDAP. Обратитесь к документации для этого.
Вам также понадобится SSL в случае, если вы проходите через WAN, и у вас нет туннеля IPSec - эта документация здесь: http://www.rabbitmq.com/ssl.html, и вы включаете вот так .
Вот и все! Наслаждайтесь!
Post scriptum: если вы готовитесь к приключению, которое поможет вам управлять всей своей инфраструктурой как побочным эффектом, вы можете взглянуть на puppet . Puppet - поставщик и менеджер конфигурации серверов; в этом случае вам будет интересно установить SSL с Puppet. Во-первых, закажите сертификат поддомена с подстановочными знаками для вашего домена, затем используйте этот сертификат для подписи других сертификатов: вы можете делегировать это - см. Руководство rabbitmq, где говорится: «Теперь мы можем сгенерировать ключ и сертификаты, которые будет использовать наш тестовый центр сертификации «. - создать запрос на подпись сертификата для сертификата вместо создания нового органа - и позволить RMQ использовать его для SSL - он будет действителен для Интернета.