powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
25 сообщений из 228, страница 6 из 10
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102210
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот "клетчатый" что-то вещает по теме. Интересно. Добавил в заметку Tarantool, NATS.

[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102217
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Пускай вадя поднимет отдельную тему про "свои сокеты". Я думаю это будет справедливо.
ну в этом ракурсе "мои сокеты" ничем не отличаются от обыкновенных сокетов.
т.е. это простой канал связи, а что по нему передается и как используется переданное - это уже дело фантазии и опыта прогера.
единственное отличие - трафик. Но это не главное в данном случае.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102302
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все эти доклады в основном преследуют одну цель - улучшить имидж компании или конкретного человека. Никто не будет делиться с вами реально ценными решениями, ибо незачем плодить конкурентов. На примере тех брокеров - решение из коробки во многих случаях плохо работает, если его не допилить и не обвешать своими костылями. А.вот как это сделать, вам как раз не расскажут в деталях - а это самая ценная информация.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102305
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Osipov, В данном случае целью докладчика явно была реклама Tarantul от mail. Не упоминалось те же Hazelcast и Ignite, которые явно не хуже, а может и получше Tarantul в качестве брокеров будут работать.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102320
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
Roman Osipov, В данном случае целью докладчика явно была реклама Tarantul от mail. Не упоминалось те же Hazelcast и Ignite, которые явно не хуже, а может и получше Tarantul в качестве брокеров будут работать.

Дружище. Ты с Ignite совсем промахнулся. Я работал с Ignite. Это key-value распределенное
хранилище с богатыми возможностями распределенных вычислений.

Оно не позиционируется как брокер очередей.

Насчет Hazelcast - не знаю. Но тоже сомнительно.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102324
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

хороший такой подход к сравнению: "возьмём что-то изкаробки, потом возьмём тарантул, кастомизируем его под задачу и вуаля, будет быстрее и надёжнее" :-)
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102333
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот смотрю щас на сайт тарантула. Его юз-кейсы. Или паттерны, как там пишут. Надо в самый низ проскроллить.

https://www.tarantool.io/en/patterns/
Persistent Queues

Вот. Значит этот инструмент - не только key-value система но и также является брокером. Это заявлено.
Что он где хранит. Какой API предоставляет. Можно ли интегрироваться с ним "извне" - это отдельные вопросы.
Но главное что фича заявлена.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102334
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, https://ignite.apache.org/docs/latest/data-structures/queue-and-set

Изучай на здоровье.

А Hazelcast у нас очень много где и очень долго стабильно как брокер в продакшене работает. Распределенный, отказоустойчивый, горизонтально масштабируемый и очень быстрый.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102338
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Osipov, https://ignite.apache.org/features/messaging.html
В догонку.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102340
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
mayton, https://ignite.apache.org/docs/latest/data-structures/queue-and-set

Изучай на здоровье.

А Hazelcast у нас очень много где и очень долго стабильно как брокер в продакшене работает. Распределенный, отказоустойчивый, горизонтально масштабируемый и очень быстрый.

Хм... ну. Может быть.

Как-жеж они ее персистят? Только на memory надеются? На избыточность?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102341
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Да, надежность обеспечивается репликацией очередей по нодам. В случае полного отказа есть заперсистенные статусы доставки сообщений, по которым выполняется восстановление состояния брокера. Потерь не будет, максимум получим дубли.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102344
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да как-то дороговато выходит. Я понимаю роль Ignite в кешировании например базы крупного банка.

А ты смотрел лекцию "клетчатого" выше по ссылке? По его мнению идеальная метрика
любой очереди в кластере - это пустая очередь. Я с ним согласен. Это - цель к которой нужно двигаться.
Но Ignite в этом use-case выглядит фурой в которую положили 1 мешочек картошки. Или очередь в данном
сценарии является просто не главной ролью Ignite Cluster а просто чем-то вспомогательным. Тоесть
мы долгжны перевести все вычисления в Ignite Cluster и только после этого эта фича (бантик сбоку)
как говорил мой коллега вдруг станет рациональным.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102347
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Это только по его субъективному мнению.
Но жизнь такая, что иногда не все консьюмеры всегда онлайн и в состоянии выгрести очередь.
Выходит очень даже дешево - аналогичные по скорости и надежности решения обычно требуют гораздо большего железа, я знаю о чем говорю, видел разные варианты. Фишка Ignite и Hazelcast в том, то на паре нод можно отказоустойчиво обрабатывать сотни тысяч очередей. Тот же RabbitMQ сдохнет примерно на 5000 очередей.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102349
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
Фишка Ignite и Hazelcast в том, то на паре нод можно отказоустойчиво обрабатывать сотни тысяч очередей. Тот же RabbitMQ сдохнет примерно на 5000 очередей.

А мы рассматриваем одинаковые конфигурации железа? Мне просто сомнительно такое сравнение.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102351
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Да, именно одинаковые конфигурации. Дело в том, что у RabbitMQ на каждую очередь работает отдельный программный тред. И когда их становится много, то переключения контекстов начинают жутко тормозить.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102355
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
mayton, Да, именно одинаковые конфигурации. Дело в том, что у RabbitMQ на каждую очередь работает отдельный программный тред. И когда их становится много, то переключения контекстов начинают жутко тормозить.

Хорошо. Давайте отложим этот разговор. Я просто принимаю как должное от вас тот факт что RabbitMQ
может лопнуть от 5000 очередей. Хотя мне это кажется странным ибо Erlang... ну ладно.

Когда доберусь до кролика я проверю этот забавный факт.

Кроме того любая программная конфигурация при 5000 * 2 открытых сокетов уже ведет себя плохо.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102469
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul
mayton
Привет коллеги.
Является ли это хайпом или технолгическим витком?



Чта?! Хайп MQ?
Мне казалось, что хайп на MQ прошел лет 10 назад.
Щас хайп это GraphQL и gRPC.
Щас у нас на проекте активно избавляются от REST и переходят на GraphQL для фронта.
А микросервисы между собой общаются по gRPC.
Только где-то в уголке притаилась Kafka.

<:o)
тоже самое ВНУТРЯНКА ВСЯ НА gRPC внешка рест
кафка осталась в паре моментов - например что то выгрузить нам в систему,в остальном есть варианты лучше
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102488
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov,

> Дело в том, что у RabbitMQ на каждую очередь работает отдельный программный тред
Можешь ткунуть в доку?
Всегда считал что thread per client channel.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102490
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolchanov, Вот https://github.com/rabbitmq/internals/blob/master/queues_and_message_store.md

Each queue is a gen_server2 Erlang process. The usual pattern of the API and implementation being in one file is not applied; rabbit_amqqueue is the API (a module) and rabbit_amqqueue_process is the implementation (a gen_server2).

И вот https://www.cloudamqp.com/blog/part1-rabbitmq-best-practice.html

Number of queues
Queues are single-threaded in RabbitMQ, and one queue can handle up to about 50 thousand messages. You will achieve better throughput on a multi-core system if you have multiple queues and consumers and if you have as many queues as cores on the underlying node(s).
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102511
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov,
>Each queue is a gen_server2 Erlang process.
Мне всегда казалось, что erlang процесс это не thread.
В све время, когда писал на erlang, запусал на моей рабочей машине несколько десятков тысяч процессов, без каких то проблем с производительностью.

В интернетах тоже пишут:

Erlang processes are not OS processes. They are implemented by the Erlang VM using a lightweight cooperative threading model (preemptive at the Erlang level, but under the control of a cooperatively scheduled runtime). This means that it is much cheaper to switch context, because they only switch at known, controlled points and therefore don't have to save the entire CPU state (normal, SSE and FPU registers, address space mapping, etc.).

>Queues are single-threaded in RabbitMQ, and one queue can handle up to about 50 thousand messages. You will achieve better throughput on a multi-core system if you have multiple queues and consumers and if you have as many queues as cores on the underlying node(s).

Тут написано, что одна очередь обрабатывается одним потоком, но не то что на каждую очередь создается отдельный поток.
Т.е. ИМХО фраза "Дело в том, что у RabbitMQ на каждую очередь работает отдельный программный тред" некорректна
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102580
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolchanov, В общем согласен, что выразился неточно. Но сути особо это не меняет. Да, программные процессы erlang более легковесны чем программные потоки ОС, но когда их становится много, то переключения контекстов начинает сильно сказывается на производительность. Чем больше очередей, тем медленнее работает. И зависимость производительности от количества очередей не линейная. Я ставил опыты на машине с 4 процессорами и 16ГБ RAM. Примерно на 5000 очередей и наступал этот самый момент сильной деградации. Ну и поток потоку рознь, может быть в RabbitMQ в реализации есть узкие места и что-то тормозит из-за этого.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102581
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Osipov, И если сравнивать Rabbitmq с тем же Hazelcast, то грубо говоря у последнего нет такого неприятного свойства, как зависимость производительности от количества очередей. Понятно что для Hazelcast если исчерпается память то будет краш, но это надо предусмотреть.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102585
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
то переключения контекстов начинает сильно сказывается на производительность.

Тоже по идее такого не должно быть. Эрланг проектировался в далекие 80-е когда мультизадачность была
основана не на потоках а на более примитивных сущностях. Прерывания ввода-вывода. Корутины.
В идеале если на вход сетевого интерфейса ничего не поступает то и Erlang-потоки должны
потреблять абсолютный ноль мегафлопов. Вобщем надо смотреть условия эксперимента.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102590
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov,
Ну дак минус в тормозах покрывается другими 30 - тью характеристиками.
Надо же комплексно.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102593
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Всё очереди не простаивали, в них постоянно писалось/читалось. Поэтому не занимать ресурсов они не могли.
...
Рейтинг: 0 / 0
25 сообщений из 228, страница 6 из 10
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]