Статьи

Конфигурация JMS Mbean в весенней интеграции

Spring-Integration
JMS-управляемый каналом адаптер сообщений имеет хорошую
поддержку
MBean через 
DefaultMessageListenerContainer, где мы можем контролировать поток сообщений подписчикам. В этом блоге я продемонстрирую некоторые из этих возможностей. Для людей, которые спешат, вот
код @ Github,

  • Скачайте activemq и распакуйте его
  • запустите activemq.bat в папке <activemq-home> / bin
  • Перейдите в браузер и введите http: // localhost: 8161 / admin / queues.jsp , создайте новую очередь «MyQueue»
  • Получить последний код от Github
  • Создайте файл войны, используя «mvn clean package»
  • Разверните файл войны в контейнере Spring Tomcat
  • Сообщение «Отправить» MyQueue в консоли администратора activemq в браузере
  • Вы замечаете, что сообщение уничтожено
  • Откройте jconsole.exe в каталоге jdk bin
  • Войдите в удаленный процесс «localhost: 6969», uid: admin, пароль: «springsource»
  • Перейдите на вкладку MBean и разверните spring.application / JMSContainer / testQueueContainer / Operation, нажмите на остановку операции
  • Снова «Отправить» в MyQueue в консоли администратора ActiveMQ в браузере, если вы заметили, сообщение не используется
  • Перейдите на вкладку MBean и разверните spring.application / JMSContainer / testQueueContainer / Operation, нажмите на начало операции
  • Снова «Отправить» в MyQueue в консоли администратора ActiveMQ в браузере, если вы заметили, что сообщение было использовано

Подробности: конфигурация Spring Integration JMS Mbean

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

Предоставить интерфейс жизненного цикла DefaultMessageListenerContainer

<bean id="queue.exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="beans">
<map>
<entry key="spring.application:type=JMSContainer,name=testQueueContainer" value-ref="queueContainer" />
</map>
</property>
<property name="assembler">
<bean class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
<property name="managedInterfaces">
<value>org.springframework.context.Lifecycle</value>
</property>
</bean>
</property>
</bean>

Класс InterfaceBasedMBeanInfoAssembler представляет интерфейс определенного класса как Mbean, в приведенном выше примере он предоставляет жизненный цикл

Управление подписчиком JMS в JConsole

Управление подписчиком JMS с помощью JConsole

Управление подписчиком JMS с помощью JConsole

Когда вы нажимаете на кнопку «Начать операцию» и нажимаете кнопку «Пуск», он запускает подписчика для прослушивания сообщения, а когда вы нажимаете «Стоп», он приостанавливает работу подписчика.

Вывод

MBean — это мощный способ раскрыть некоторые возможности различных канальных адаптеров Spring Integration, так что вы можете управлять ими с помощью различных инструментов, поддерживающих MBean, таких как JConsole, Hyperic . Мы также можем выставить Log4J Mbean, чтобы изменить уровень записи в производственной системе. Подробнее об этом в моем следующем блоге.