powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
25 сообщений из 228, страница 4 из 10
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101636
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,

>>Необходимо уведомлять несколько приложений о событии, причем логика того, какие приложения нужно уведомлять, а какие нет (раутинг), может менятся.

>А для чего это делается?

Например, b2c и b2b ордера обрабатываются в разных приложениях, хотя и те и те обрабатываются одним customer information management приложением.
Потребовалось по дргугому обрабатывать ордера b2g клиентов.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101637
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,

>Добавляем кэширование на сервере в nginx'e эдак в одну минуту и вся нагрузка с сервера резко уйдет. Т.е. надо чтоб все долбящиеся клиенты кроме 1ого получали ответ из кеша.

Это помогает только в самых тривиальных случаях, когда всем нужен один и тот же объект.
А если это web портал, которому нужно получать нотификацию об обновлении для конкретного кастомера, у которого открыта сессия.
Еще один nginx посередине сделает ттолько хуже.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101644
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp
пропущено...
пошире это
- JMS устарело. Не стоит сравнивать.

В чем устарело? То что спецификация была от 2013 года? Так это не так старо. Бывалыча некоторые стандарты
и постарше лежат и ничего.

Ну вот смотри.
За 5 лет в ветке нет обсуждений JMS. А кафки есть.
Для тебя не имеет значение?
Почему для тебя это ничего не значит?
Почему для тебя это не критерий?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101646
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
пропущено...

В чем устарело? То что спецификация была от 2013 года? Так это не так старо. Бывалыча некоторые стандарты
и постарше лежат и ничего.

Ну вот смотри.
За 5 лет в ветке нет обсуждений JMS. А кафки есть.
Для тебя не имеет значение?
Почему для тебя это ничего не значит?
Почему для тебя это не критерий?

Я думаю что для Java технологий 5 лет - не показатель. О каком старении вообще идет речь?
Протоколы почтовой связи SMTP/POP которые мы используем каждый день имеют возраст порядка 40 лет. И что?

Банки используют внутри AMQP. В основном. Говорю потому что работал минимум с 3 европейскими
банками. Они сидят на этом протоколе плотно. Интеграция систем которые занимаются торговлей
ценными бумагами. И я представил себе что должно случится чтобы они вдруг стали что-то считать устаревшим?
Железо? Софт? Да. Может быть. Это можно считать устаревшим. Хотя-бы по лицензиям.

Протокол связи? - хрен там. Он еще 100 лет может сохраняться без особых изменений.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101647
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp

или Message oriented middleware.

Расскажи как ты себе понимаешь MOM. Без определений из вики. Вот лично как ТЫ понимаешь.

Легко.
Могу сразу и теорию и практику.
Теория - это ИС с высокой доступность, нагрузкой и низкой согласованность данных (жертва).
Практика - реализовано в ГОСУСЛУГИ
...
Если нет входа то рассказываю.
При входе есть поле Задолженность по налогам. Там число и кнопка "Проверить (на тек время)".
Вроде все понятно.
Никакого pooling))))
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101648
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я думаю что для Java технологий 5 лет - не показатель.
-1
Мы о новых проектах или легаси?
Топик то про что?
Если не разбираясь жрать все подряд то это не профессионализм.
Я в балет прихожу и ничего там не понимаю. Нет ньюансов.
Архитектура это тоже балет. Её слышать и слушать надо.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101653
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Банки используют внутри AMQP.
банки используют МОМ))).
МОМ это класс ПО. А выше абревиатура это протокол.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101654
Roman Osipov
Kafka даёт максимальную производительность (из-за которой её и используют ) в режиме автокоммитов оффсетов или редких ручных коммитов. Автокоммит, кстати, сконфигуирован в Kafka по дефолту в true. Видел проекты, где разработчики вешают аннотацию коньсьмера кафка на метод и вроде как получают сообщения и все у них работает, но упускают из виду дефолтный автокоммит, что может привести к ситуации, когда коммит оффсетов произошёл, а данные не загрузились в целевую систему, вот и потеря сообщений, причём даже в логах не найдёте информацию о потерях. При редких ручных коммитах чтобы не было потерь у нас должны быть огромные пачки сообщений обрабатываться за раз, что чревато ошибками и необходимостью переотправки. Про дубли - например после ребалансировки консьюмеров не удастся закоммитить оффсеты в той же сессии, при попытке коммита будет exception. Поэтому надо хранить оффсеты обработанных сообщений где-то ещё, во внешнем хранилище, обычно я в zookeer храню. Это только малая часть проблем. Вывод такой - Kafka имеет очень много особенностей эксплуатации, и если у вас в команде нет эксперта по ней, то легко нарветесь на какой нибудь мало понятный баг. Под Jms я имел ввиду именно спецификацию. Здесь все гораздо проще - есть спецификация, есть транзакции в Jms, и даже новичек сможет писать гарантированно работающий код. Конечно, в каждом конкретном случае, в зависимости от требований отказоустойчивости, нагрузки обдуманно выбирается то или иное решение jms, kafka, кэш или что то ещё. Зависит от кругозора архитектора. Про rabbitmq - мы принципиально не пользуемся им, т.к. он плохо горизонтально масштабируется и высока вероятность split brain кластера под нагрузкой, после которого кластер разваливается и лечится только полной очисткой данных.
Спасибо! А почему проседает производительность при частых ручных коммитах? Просто из-за доп пакетов по сети?
kolchanov
Stanislav Bashkyrtsev,

>>Необходимо уведомлять несколько приложений о событии, причем логика того, какие приложения нужно уведомлять, а какие нет (раутинг), может менятся.

>А для чего это делается?

Например, b2c и b2b ордера обрабатываются в разных приложениях, хотя и те и те обрабатываются одним customer information management приложением.
Потребовалось по дргугому обрабатывать ордера b2g клиентов.
kolchanov
Stanislav Bashkyrtsev,

>Добавляем кэширование на сервере в nginx'e эдак в одну минуту и вся нагрузка с сервера резко уйдет. Т.е. надо чтоб все долбящиеся клиенты кроме 1ого получали ответ из кеша.

Это помогает только в самых тривиальных случаях, когда всем нужен один и тот же объект.
А если это web портал, которому нужно получать нотификацию об обновлении для конкретного кастомера, у которого открыта сессия.
По поводу обоих проблем: фидов обычно мало. Возможно даже один на все типы оповещений. А клиент когда по ним проходит - фильтрует только нужные. Получаем один ендпоинт который хорошо кешируется и при этом он оказывается универсальным для всех клиентов.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101659
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav Bashkyrtsev, При ручных коммитах производительность проседает, потому, что синхронный коммит оффсетов - блокирующая операция (асинхронный коммит не рассматриваем из-за отсутствия гарантий). Там путь такой обычно - оффсеты запросом клиента доставляются на один из узлов Кafka, потом реплицируются на другие узлы Кafka, в соответствии с настройками репликации, а потом уже синхронно ответ возвращается клиенту. И так каждый раз при ручном коммите.
Для продюсера Kafka ситуация другая, в памяти клиента организуется буфер, в который продюсеры с разных программных потоков складывают информацию, а потом отдельный поток отсылает всю накопленную пачку в Kafka.
Поэтому продюсеры работают быстро, а оффсеты коммитятся медленно.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101661
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
Банки используют внутри AMQP.
банки используют МОМ))).
МОМ это класс ПО. А выше абревиатура это протокол.

Конечно протокол. И когда стоит задача интеграции или развития ПО то смотрят в первую очередь - на стек
протоколов. Ты не можешь прийти работать в банк и просто написать ПО которое не интегрируется ни с чем.

Можешь называть это MOM, можешь шиной сообщений, можешь событийной и слабосвязной архитектурой.
Суть - та-же.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101662
Roman Osipov
Stanislav Bashkyrtsev, При ручных коммитах производительность проседает, потому, что синхронный коммит оффсетов - блокирующая операция (асинхронный коммит не рассматриваем из-за отсутствия гарантий). Там путь такой обычно - оффсеты запросом клиента доставляются на один из узлов Кafka, потом реплицируются на другие узлы Кafka, в соответствии с настройками репликации, а потом уже синхронно ответ возвращается клиенту. И так каждый раз при ручном коммите.
Для продюсера Kafka ситуация другая, в памяти клиента организуется буфер, в который продюсеры с разных программных потоков складывают информацию, а потом отдельный поток отсылает всю накопленную пачку в Kafka.
Поэтому продюсеры работают быстро, а оффсеты коммитятся медленно.
Понял, спасибо!
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101666
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
Про rabbitmq - мы принципиально не пользуемся им, т.к. он плохо горизонтально масштабируется и высока вероятность split brain кластера под нагрузкой, после которого кластер разваливается и лечится только полной очисткой данных.


Прямо срыв покровов можно сказать, меня здесь год назад два пионера пытались всеми силами убедить, что RabbitMQ - это пушка, а то что про него пишут в интернетах - это все недоброжелатели (в т.ч. его же разработчики)
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101669
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Вот бегать в магазин каждые 5 сек спрашивая завезли ли хлеб, и есть ВЕЛОСИПЕД.)))))

Это не велосипед, это КОСТЫЛЬ!
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101670
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Просто было специфичное ТЗ.

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

Допиливаешь монолит, деплоишь. Через какое-то время он становится большим и толстым.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101673
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Прямо срыв покровов можно сказать, меня здесь год назад два пионера пытались всеми силами убедить, что RabbitMQ - это пушка, а то что про него пишут в интернетах - это все недоброжелатели (в т.ч. его же разработчики)

Как идея - нормально. Ну кривоват и что. Попробуй достаточно ерлангшиков найти, чтобы до ума довести все это. А какие еще варианты есть для брокера с подобным функционалом, кроме хттп велика?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101674
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Конечно. Только топик не о протокол и спецификации, а как ты правильно сказал и о шине, и о слабой связанности и о событийной и о...
Короче одним словом - МОМ.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101675
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
PetroNotC Sharp
Вот бегать в магазин каждые 5 сек спрашивая завезли ли хлеб, и есть ВЕЛОСИПЕД.)))))

Это не велосипед, это КОСТЫЛЬ!
да)
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101716
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster, Конечно, у Rabbitmq есть своя ниша, где он хорош. Если не требуется отказоустойчивости и допускается потеря состояния, то он вполне годно работает на одном узле, обеспечивая event driven решение, например, для микросервисов. При этом очереди содержат не данные, которые могут быть больших объёмов, а события. По сравнению с ActiveMQ, Rabbitmq будет быстрее работать в таком случае, может быть в несколько раз.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101718
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Андрей Панфилов
Прямо срыв покровов можно сказать, меня здесь год назад два пионера пытались всеми силами убедить, что RabbitMQ - это пушка, а то что про него пишут в интернетах - это все недоброжелатели (в т.ч. его же разработчики)

Как идея - нормально. Ну кривоват и что. Попробуй достаточно ерлангшиков найти, чтобы до ума довести все это. А какие еще варианты есть для брокера с подобным функционалом, кроме хттп велика?

Подожди-подожди. А если ты пользуешся Ораклом ... то что - попробуй найди С/C++ ников чтоли?

Зачем в эксплуатации коробочной системы тебе знание языка на котором она написана?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101731
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Зачем в эксплуатации коробочной системы тебе знание языка на котором она написана?

Да это не себе, а тем, кто развивает этот самый раббит.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101735
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Дырявые абстракции. Иногда надо посмотреть, как устроено внутри, чтобы правильно использовать снаружи. И как минимум разработчику понятнее читать java-логи, чем какие нибудь erlang логи. В том числе поэтому мы предпочитаем использовать ActiveMQ, а не Rabbitmq, даже для некритичных систем, хоть он и работает несколько медленнее.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101738
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov,
+1
Вообще, есть куча критериев для выбора Event driven.
Я не помню причину по которой мемберу выше сказали что это пушка по воробьям.
В одном проекте - пушка. В другом золотая пуля и эврика))
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101742
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Вообще, есть куча критериев для выбора Event driven.

Так выбирать в общем-то не из чего. С одной стороны жабака, с другой ерлагн-функциональщики. Есть кафка, amq (openmq, openjms), rabbit, zeromq для ценителей и всё. Никто особо MQ системами, можно сказать, и не занимался.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101747
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov, согласен насчет чтения логов.
...
Рейтинг: 0 / 0
25 сообщений из 228, страница 4 из 10
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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