#spring #jms #activemq
#весна #jms #activemq
Вопрос:
Новичок в мире Spring. У меня есть некоторые знания об ActiveMQ. Недавно использовался в одном из моих проектов. При чтении о весенних событиях возникли сомнения.
Весенние события: издатель -> слушатель. Мы публикуем события, и мы бы создали для этого несколько прослушивателей.
ActiveMQ: издатель -> прослушиватель. Мы публикуем события, и мы бы создали для этого несколько прослушивателей.
Итак, кто-нибудь помогает мне понять варианты использования или разницу между этими двумя API.
Комментарии:
1. ActiveMQ — это JMS, весенние события — это простой механизм событий. Оба являются совершенно разными зверями с разными вариантами использования.
2. JMS предназначена для поддержки событий локальных приложений и распределенных сообщений. Ключевое преимущество кодирования в JMS заключается в том, что ваше приложение может использовать встроенный брокер для локального события приложения, а затем масштабироваться до многосерверных распределенных событий без каких-либо изменений кода! Однако, если вы кодируете для Spring Events, вам нужно будет повторно разложить приложение, если эти события должны стать распространяемыми.
Ответ №1:
Насколько я могу судить, весенние события — это механизм событий уровняприложения, так что различные части внутри нашего приложения могут взаимодействовать / координировать. Объем и функциональность кажутся довольно узкими и небольшими соответственно. Вы можете публиковать события и обрабатывать их либо синхронно (поведение по умолчанию), либо асинхронно (используя @EnableAsync и @Async). Нет брокера. Эта функциональность может идеально подойти для вашего приложения, если это все, что ему нужно.
С другой стороны, ActiveMQ — это полнофункциональный брокер сообщений. Вообще говоря, он выполняется как независимый серверный процесс (хотя он может быть встроен в ваше приложение). Он поддерживает стандартные отраслевые протоколы, такие как AMQP, MQTT и STOMP, которые имеют клиентские реализации на многочисленных платформах и на разных языках. Например, вы могли бы отправлять сообщения STOMP через Websockets из клиента Javascript и обрабатывать эти сообщения с помощью AMQP-клиента, написанного на .NET в Windows. Он предоставляет как клиентскую реализацию JMS, так и JNDI. Он поддерживает как публикацию-подписку, так и семантику «точка-точка». Вы можете использовать его в качестве платформы интеграции и масштабировать до многоузловых кластеров с высокой доступностью для данных сообщений и тысяч удаленных клиентов, использующих различные протоколы, или вы можете встроить его в свое приложение и просто использовать для локальных событий.