2015-09-14 3 views
2

Недавно я начал использовать ActiveMQ для работы в качестве промежуточного ПО Message в моем новом проекте, это первый раз, когда я пытаюсь использовать ActiveMQ, проекты, в которых я участвовал, прежде чем использовать внутреннюю систему сообщений предыдущей компании, такую ​​как Swallow. Поэтому, прежде чем я начну внедрять систему, мне нужно очистить некоторые точки дизайна.Как правильно выбрать протокол и сетевое подключение для использования ActiveMQ?

Случаи в нашей системе будут включать ActiveMQ, включая отправку почты, отправку задач в очередь и выполнение задач из очереди, асинхронный запрос/ответ, , и какой протокол и сетевое соединение являются правильным выбором для наших случаев? Я перечислю некоторые протоколы и параметры сетевого соединения здесь:

ActiveMQ протоколы:

  1. MQTT
  2. WS
  3. Openwire
  4. Stomp
  5. Stomp
соединения

ActiveMQ сети:

  1. VM
  2. TCP
  3. UDP
  4. HTTP
  5. Failover
  6. Discovery

Я также рассмотрю аспекты HA и кластера для моей системы, так может ли кто-нибудь дать мне некоторые идеи, чтобы решить, как выбрать протокол и сетевое соединение?

Большое спасибо.

ответ

2

Openwire исторически был протоколом по умолчанию, транспорт NIO может обеспечить повышение производительности по TCP, поэтому, если вы используете ActiveMQ, так как ваш единственный брокер использует один из них. Однако использование AMQP означает, что в будущем вы можете использовать RabbitMQ, еще один популярный Message Broker. Есть и другие, STOMP или MQTT являются легкими, VM предназначена для использования, когда приложение находится на той же машине, что и брокер, поэтому получает очень высокую пропускную способность.

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

Что касается UDP, TCP, HTTP, я бы выбрал TCP. UDP ненадежен, и TCP более чем достаточно для отправки 1000 в секунду. HTTP может быть полезен, если у вашей компании есть неудобные правила брандмауэра.

Я бы обернул это переводом при переходе на другой ресурс. Я никогда не использовал обнаружение, но утверждал бы, что это более продвинутый и не требуется первоначально, поскольку для этого требуется агент обнаружения. Его единственная цель - слишком быстро открыть брокера ActiveMQ (хотя вам все равно нужно знать, где агент обнаружения).

Смежные вопросы