Статьи

Pub / Sub Использование vFabric, Spring Integration и Gemfire


В составе
vFabric вы получаете
SpringSource Tool Suite (STS) ,
vFabric tc Server ,
Spring AMQP для включения
обмена сообщениями
vFabric RabbitMQ и
проект
Spring Data , упрощающий доступ к vFabric
GemFire ,
SQLFire и
Postgres.

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

Для людей, которые спешат, вот код и шаги для выполнения .

Подробности: издатель, подписчик, использующий vFabric Spring Integration, Gemfire

Эта демонстрация является продолжением моего предыдущего блога по шаблону Claimcheck . Я буду реализовывать сквозной поток, как показано ниже

Подписчик ESB издателя, использующий Spring Integration, Gemfire и ActiveMQ

Подписчик ESB издателя, использующий Spring Integration, Gemfire и ActiveMQ

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

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

Технологический стек, который я использовал для этого, — это база данных hsqldb , ActiveMQ JMS, а также vFabric TC Server и vFabric Gemfire.

На стороне издателя слушатель JDBC настраивается в Spring Integration, как показано ниже:

<int-jdbc:inbound-channel-adapter
query="select * from notification where status=2" channel="jdbc.inbound"
data-source="dataSource" update="update notification set status=10 where id in (:id)">
<int:poller fixed-rate="1000" />
</int-jdbc:inbound-channel-adapter>

и вы соедините это с каналом проверки претензий, как показано ниже,

<!-- for convenience sake we are bridging the jdbc to directly claimcheck in reality we will be going thru a SI flow
<int:bridge input-channel="jdbc.inbound"
output-channel="common.claimcheck.in.inputChannel" />

<!-- Bridge the claimcheck output directly to JMS -->
<int:bridge input-channel="common.claimcheck.in.outputChannel"
output-channel="jms-channel.out" />

На стороне подписчика полезная нагрузка передается в vFabric Gemfire, и на стороне vFabric Gemfire создается GUID, и он передается в раздел. Компонент Subscriber получает полезную нагрузку и печатает на консоль. Этот блог объясняет это более подробно.

Вывод

Инфраструктура vFabric обеспечивает хорошую поддержку для разработки компонентов интеграции с помощью STS IDE , vFabric TC Server , vFabric Gemfire . Я четко продемонстрировал, как можно создать компоненты издателя / подписчика, которые могут интегрировать исходную систему в целевую систему.

Я надеюсь, что этот блог помог вам.