Организовать очередь сообщений

154
31 августа 2021, 00:20

Есть задача организовать систему передачи сообщений от клиента к менеджеру. Сейчас используется со стороны клиента ejabber , со стороны менеджера "своя система приема и отправки сообщений" . Думаю что лучше использовать для очередей, rocket, rabbit,kafka или просто базу данных? Задачи которые нужно решить: забирать сообщения по одному, очереди должны быть с приоритетом и должна быть выборка по тегам сообщения.

Answer 1

Приоритеты и выборка -- это вообще слабые места очередей (на то они и очереди). Некоторые очереди поддерживают выборки, но обычно это относится к фильтрации сообщений во время потребления, а не к повторяющемуся выполнению запросов вида "дай мне такие-то сообщения". Я бы использовал базу данных для вашей задачи.

Kafka:

  • не поддерживает приоритеты
  • поддерживает выборку, но с использованием дополнительных средств (KSQL/KStream)

Rabbit:

  • поддерживает приоритеты (со своими тонкостями однако)
  • не поддерживает выборку

Rocket:

  • не поддерживает приоритеты
  • поддерживает выборку (однако не более одного тэга на сообщение, либо нужно использовать SQL)
READ ALSO
LinkageError occurred while loading main class (java.lang.UnsupportedClassVersionError) (Java)

LinkageError occurred while loading main class (java.lang.UnsupportedClassVersionError) (Java)

Было установлено jdk 9 потом сменил на jdk 12

227
Проверка элемента перед добавлением в массив

Проверка элемента перед добавлением в массив

Есть пустой массив String[] list, как в цикле перед добавлением проверить на дублирование, если нет такого элемента тогда добавить

95
Gitlab-ci для java-проекта

Gitlab-ci для java-проекта

помогите сконфигурировать gitlab-ci файл для java-проекта без Maven, Gradle и тд

214