Наша команда спешит выбирать между ActiveMQ или RabbitMQ. Мы сделали 2 небольших пика производителя / потребителя, отправив объектное сообщение с массивом из 16 строк, отметкой времени и 2 целыми числами. На наших машинах разработчиков скачки в порядке (сообщения хорошо расходуются).
Затем пришли скамейки. Мы впервые заметили, что иногда на наших машинах, когда мы отправляем много сообщений, потребитель иногда зависал. Он был там, но сообщения накапливались в очереди.
Когда мы пошли на платформу скамьи:
Мы заметили, что иногда, потребители зависают (ну, они не заблокированы, но больше не потребляют сообщения). Мы можем видеть, что, поскольку каждый потребитель экономит около 100 сообщений в секунду в базе данных, поэтому, когда один из них прекращает потребление, общее количество сообщений, сохраняемых за секунду в БД, падает с таким же соотношением (если, скажем, 3 потребителя останавливаются, мы падаем примерно на 600 сообщений. / сек до 300 сообщений / сек).
В течение этого времени производители в порядке и по-прежнему производят со скоростью jmeter (около 600 msg / sec). Сообщения находятся в очередях и принимаются потребителями еще «живыми».
Сначала мы загружаем все сервлеты с производителями, затем запускаем всех потребителей один за другим, проверяя, в порядке ли соединения, затем запускаем jmeter.
Мы отправляем сообщения на одну прямую биржу. Все потребители слушают одну постоянную очередь, связанную с обменом.
Это важный момент для нашего выбора. Вы видели это с rabbitmq, вы имеете представление о том, что происходит?
Спасибо за ваши ответы.
Я видел такое поведение при использовании плагина RabbitMQ STOMP. Я пока не нашел решения.
Вы используете плагин STOMP?