Статьи

Интеграция ZeroMQ, AMQP, JMS WebSphere MQ и других компонентов в 2 строки кода Python с Zato

Как указано в списке zeromq-dev, вот пример интеграции с использованием ZeroMQ.

Код

Скажем, вам нужно пересылать сообщения, отправленные из приложений на основе ZeroMQ, в AMQP и JMS WebSphere MQ.

Никакого преобразования сообщений, никакого обогащения, проверки — просто подключите несколько несовместимых технологий и, возможно, языки программирования (скажем, ZeroMQ — это C ++, AMQP — на Python, а JMS, что неудивительно, на Java), как показано на схеме ниже.



Это весь код, который необходим. Две строки в дополнение к определению импорта и класса / метода.

from zato.server.service import Service

class MyService(Service):
    def handle(self):
        
        # JMS WebSphere MQ
        self.outgoing.jms_wmq.conn.send(self.request.payload, 'JMS MQ app', 'QUEUE.1')

        # AMQP
        self.outgoing.amqp.conn.send(self.request.payload, 'AMQP app', 'EXCH.1', '/')

Философия

Zato — это промежуточное программное обеспечение с открытым исходным кодом / ESB (Enterprise Service Bus) и внутренний сервер в Python, предназначенный для подключения других приложений и создания систем систем. Другими словами — для работы в SOA — сервис-ориентированная архитектура .

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

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

Почти все в Zato горячо развернуто и перенастроено. Перезагрузки нужны редко.

Вы можете использовать GUI , CLI , API или (для разработчиков DevOps, ищущих повторяемые сборки) массово управлять объектами с помощью конфигурации JSON.

Давайте использовать графический интерфейс в этом посте. Потребуются три вещи:

После заполнения форм, как показано ниже, служба может быть развернута в горячем режиме и готова к использованию.

И более

Что если внезапно другому приложению понадобится протолкнуть данные, скажем, через HTTP (который в Zato 1.1 оказался единственным способом синхронного вызова служб), используя SOAP, JSON или что-то еще?

Вам нужно будет создать новый канал HTTP , используя графический интерфейс или другие инструменты, и все. Служба теперь будет доступна через другой канал, серверы автоматически перенастраиваются, и вы можете начать вызывать службу из HTTP, перезапуски не требуются.

Вы также можете проверить исходный код сервиса прямо в браузере, просмотреть его статистику и сделать больше, используя графический интерфейс , CLI или API .

Что дальше?

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

У Zato есть HTTP, JSON, SOAP, SQL, AMQP, JMS WebSphere MQ, ZeroMQ, Redis NoSQL, FTP, GUI на основе браузера, CLI, API, безопасность, статистика, планирование заданий, балансировка нагрузки, горячее развертывание и многое другое. документы, чтобы покрыть все.

Учебник будет быстро помочь вам начать использовать уменьшенный реальный пример интеграции.

Пожалуйста, посетите страницу поддержки, если вы хотите пообщаться или вам нужна помощь.