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


Я когда в прошлый раз спрашивал про спеки OpenAPI, что со стороны жавы непонятно как разные статусы реализовывать, ибо получаются разные модели, мне начали втирать, что для общения p2p нужно не REST использовать а JMS (конкретно RabbitMQ), и типа пофиг что там накладные расходы выше чем в HTTP, и что оно от таймаутов никак не избавляет и никак не масштабируется. Тут нашелся человек который на грабли налетел, а оказывается что он все врет
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102720
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
либо реализуем
приколист или провокатор.
Предлагаю реализовать СУБД. Тоже может отказать.
И самолеты падают
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102812
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov
Т.е. либо мы принимаем факт возможности потери сообщений, либо реализуем таки очередь на источнике с переотправкой.


100% гарантий никто не даст.

Тут ещё вот что. Если упала Кафка, то любой девопс сможет найти, как её починить в любой момент дня и ночи.
А вот если проблема будет в каком-то из микросервисов - то скорее всего бы пришлось будить автора и он судорожно бы фиксил это. Если ещё не уволился
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102813
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Alexey Tomin#22380833]
Roman Osipov

Если упала Кафка, то любой девопс сможет найти, как её починить в любой момент дня и ночи.
Если ещё не уволился


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

Это - почти философская дилемма. Что-бы мы не строили - месседжи теряются.
Мне кажется что наиболее вероятная точка потерь месседжей - это сам consumer.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
while(true) {
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(pollTimeMs));
            for(ConsumerRecord<String, String> record : records) {
                logger.info("Received message topic = {}, partition = {}, offset = {}",
                        record.topic(),
                        record.partition(),
                        record.offset());

                // ... processing records
            }
        }



В не-транзакционном режиме, после которого мы прочитали пачку может случится
(хопа!) что-то нежданное .. например OOM exception и мы падаем.

С точки зрения например Kafka брокера мы уже пачку прочитали. И информацию
о том что мы падали и что-то теряли знает только consumer. Или его логи. Или его
некое персистентное состояние (если таковое вообще проектировалось). Если он - просто
некая функция типа CloudFunc или Lambda то ничего он не знает и не помнит.
Он может даже поднимется не в том докере или не втом хосте или не втом дата-центре.

Это КМК тот кейс когда КОНКРЕТНО разработчик несет отвественность за целосность месседжей.

Другие кейсы с падением брокеров или ребалансировкой мы еще можем например свалить
на технолгию или девопсов или просто сырость системного ПО.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102818
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
На вход сетевой карты заходит Ethernet frame. Мы могли-бы уже его сразу взять в работу.
"Сысти-то он сысти, тильки ж хто ж ему даст?!"
IP-стек не может взять пакет в работу. Всё, что он может - поместить данные из пакета в структуры какого-то из сотен-тысяч сокетов.
"Вопрос на миллион!": кого "будить" после заполнения этих самых структур?

P.S.
Вы правда думаете, что только из-за своей тупости разработчики не смогли сделать "это" сразу?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102822
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton


Что-бы мы не строили - месседжи теряются.
[/src]
.


Доставка без потерь вообще не проблема. По тому же http отправил, а клиент возвращает ответ только тогда, когда точно принял и обработал сообщение - источник знает доставлено ли сообщение и может принять решение на передоставку или переход к следующему сообщению. В случае с Kafka коммитим оффсеты только когда, когда сообщения гарантированно обработались.


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

Доставка без потерь вообще не проблема. По тому же http отправил, а клиент возвращает ответ только тогда, когда точно принял и обработал сообщение - источник знает доставлено ли сообщение и может принять решение на передоставку или переход к следующему сообщению.

Обсуждать http здесь - это маветон. Помнишь анекдот про Вовочку который всю религию к *** свёл?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102840
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
mayton
На вход сетевой карты заходит Ethernet frame. Мы могли-бы уже его сразу взять в работу.
"Сысти-то он сысти, тильки ж хто ж ему даст?!"
IP-стек не может взять пакет в работу. Всё, что он может - поместить данные из пакета в структуры какого-то из сотен-тысяч сокетов.
"Вопрос на миллион!": кого "будить" после заполнения этих самых структур?

P.S.
Вы правда думаете, что только из-за своей тупости разработчики не смогли сделать "это" сразу?


Я не говорил что они тупые. Можно в качестве примера взять ОС Cisco. Я думаю что там есть программно
аппаратные решения которые ставили своей задачей синхронизм в обработке Ethernet frames.

Нет я не говорю что это надо срочно переносить в general purpose ОС. Но уж коли долго говорим
о накладных расходах на мессенжинг с 5000 каналами или подписками то мы могли-бы обсудить
и альтернативы.

Все составляющие протокола TCP нигде в своей сетевой части не требуют ни процессов ни потоков,
ни зеленых потоков ни корутин.

В моём понимании это просто команда к переводу некого конечного автомата в новое состояние. Сможем
реализовать это в event-drivern - поддержим и 64к сокетов.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102844
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov

Фундаментальные трудные проблемы - это устранение дублей и упорядоченная доставка в условиях конкуррентной отказоустойчивости.

В моём понимании идеальные продюсер и консюмер - это например модель Primary-Standby(Physical) для Oracle.
Правда эта модель требует физического хранилища и на продюсерах и на консюмерах. И это - точка-точка.

Но если договорится о retention периоде например 24 часа - то получается надёжный спосособ передачи информации.
И здесь будет гарантирован exactly once. И ни одно сообщение не потеряется.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102847
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote Roman Osipov#22380838]
Alexey Tomin
Roman Osipov

Если упала Кафка, то любой девопс сможет найти, как её починить в любой момент дня и ночи.
Если ещё не уволился


Спасибо, посмеялся! Распечатаю и повешу на стенам нашим девопсам:)

Мы уже смеемся.
Ты Message ориентированное ПО предложил заменить на Pooling)))
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102849
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot PetroNotC Sharp#22380897]
Roman Osipov
пропущено...

Мы уже смеемся.
Ты Message ориентированное ПО предложил заменить на Pooling)))


Понятно. Вам стоит освежить информацию, в чем разница между pool и push моделями.
Pool мной не упоминался.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102850
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Можно в качестве примера взять ОС Cisco. Я думаю что там есть программно аппаратные решения которые ставили своей задачей синхронизм в обработке Ethernet frames.
"А что тут думать? Тут знать надо!". Я вот не знаю.
Но зато вполне известны чуть меньше чем стопиццот вариантов быстрого сетевого ввода-вывода в операционных системах общего назначения.
Вы не поверите, но они все разные!Все составляющие протокола TCP нигде в своей сетевой части не требуют ни процессов ни потоков, ни зеленых потоков ни корутин.
В моём понимании это просто команда к переводу некого конечного автомата в новое состояние. Сможем реализовать это в event-drivern - поддержим и 64к сокетов.У вас "конечный автомат" IP-стека и "конечный автомат" планировщика потоков. Проигнорируем, для упрощения, "конечный автомат" управления памятью.
Каким образом один конечный автомат может перевести другой конечный автомат в совершенно определённое состояние, если они - два чёрных ящика?
А ведь это не роутер, который только сетью и занимается, а общецелевая система и для неё всегда найдётся работа.
И самая разная. И приоритетная - в том числе.
P.S.Читаю вас и вспоминаю себя, наивного, примерно четверть века назад:
(восторженный я): ... и вот это и вот это!
(слегка усталый инженер вендора): IBM - большая контора. У неё есть много решений и далеко не все они удачные.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102851
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov,
Ну да освежи. Расскажи.
Ты же отстаиваешь точку зрения.
Я свою высказал - если требования к ИС подходят для МОМ то надо использовать))))
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102854
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S.А ещё плохо путать poLL и poOL.
Но полезно пользоваться предпросмотром для перечитывания сообщения перед отправкой.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102856
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Ну может там новая технология. Мы не знаем что он предложил вместо MQ
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102859
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, Да, бывает, пишу невнимательно параллельно с кодингом. Кодирование конечно в приоритете.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102860
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

У вас "конечный автомат" IP-стека и "конечный автомат" планировщика потоков. Проигнорируем, для упрощения, "конечный автомат" управления памятью.
Каким образом один конечный автомат может перевести другой конечный автомат в совершенно определённое состояние, если они - два чёрных ящика?
А ведь это не роутер, который только сетью и занимается, а общецелевая система и для неё всегда найдётся работа.
И самая разная. И приоритетная - в том числе.

Я вобщем беру за образец аппаратуру 20-го века, в которой не было мультипоточки и сеть (модемная и коаксиальная
и прочая проводная) как-то работала. И менеджер памяти как-то успевал.

P.S. Спасибо что "омолодил" меня.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102937
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я вобщем беру за образец аппаратуру 20-го века, в которой не было мультипоточки
Кто вам это сказал? "Плюньте ему в лицо, назовите лжецом и прогоните прочь из дома".
Даже в древнем DOS-е был print, умевший фоновую печать на принтер. Появился, как максимум в DOS 3.0.
При наличии прерывания таймера делается "вытесняющая многозадачность", при отсутствии - кооперативная (что-нибудь вроде сопрограмм Modula-2).
От аппаратуры это всё зависит крайне слабо.и сеть (модемная и коаксиальная и прочая проводная) как-то работала.Все устройства, которые вы перечислили, умели генерировать прерывания. Была даже проблема разделения прерываний.
И были решения в виде многопортовых карт для RS-232. Широко известная в узких кругах Moxa, если правильно помню название.
Иногда можно было и без прерываний. Коммуникационная программа для модема могла считать, что система принадлежит ей монопольно.И менеджер памяти как-то успевал."Вы будете смеяться", но LIM EMS 4.0 предусматривала целую пачку вызовов для поддержки многозадачности (переключение карт памяти и вызов "стороннего" кода). Как следствие, можно было делать многозадачные системы на PC-XT с Intel 8086, который умел "только реальное".
Появление защищённого режима в Intel 80286 просто убрало привязку к внешней аппаратуре.
Конкретно у 80286 была неудачная модель защищённого режима, но и это исправили в Intel 80386 (режим V86).
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102943
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote Roman Osipov#22380838]
Alexey Tomin
Roman Osipov

Если упала Кафка, то любой девопс сможет найти, как её починить в любой момент дня и ночи.
Если ещё не уволился


Спасибо, посмеялся! Распечатаю и повешу на стенам нашим девопсам:)


На прошлой работе перешли на кафку именно с такими аргументами от девопсов.
Типа "ваше ПО фиг знает как чинить, а кафку мы прям не приходя в сознание поднимем".
В целом они не обманули.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102953
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Все устройства, которые вы перечислили, умели генерировать прерывания. Была даже проблема разделения прерываний.
И были решения в виде многопортовых карт для RS-232. Широко известная в узких кругах Moxa, если правильно помню название.
Иногда можно было и без прерываний. Коммуникационная программа для модема могла считать, что система принадлежит ей монопольно.

Ну я-ж к этому и клоню. Функция-обработчик прерывания играет роль некого хендлера сетевых событий (на низком уровне).
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102979
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Функция-обработчик прерывания играет роль некого хендлера сетевых событий (на низком уровне).
Я вас всё равно не понимаю ...
На многогигабитных картах, в некоторых ситуациях, режим опроса "выгоднее" режима прерываний.
Т.е. проблема не в механизме получения информации "приняты данные", а в сложной и нетривиальной задаче планирования потоков исполнения.
Erlang со товарищи исходят из того, что "мы сами, на коленке, сделаем лучше". Возможно. Возможно даже, что лет двадцать-тридцать назад это было правдой. Сейчас - вообще не факт.
Поэтому ваши рассуждения о приехавших пакетах, лично меня - вообще не разу не убеждают. Наоборот - вгоняют в недоумение и в краску: "Ну приехал. Дальше-то - что? Как пробиться в соседнюю камеру?"
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40102995
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Alexey Tomin#22381037]
Roman Osipov
пропущено...


На прошлой работе перешли на кафку именно с такими аргументами от девопсов.
Типа "ваше ПО фиг знает как чинить, а кафку мы прям не приходя в сознание поднимем".
В целом они не обманули.


2 Roman если вашим девопасам очень смешно, в следующий раз дай им ссылку на репозиторий и переведи таску на на них упало приложение от самописной очереди.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40103001
Roman Osipov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lleming, Попробую последний раз объяснить. Если непонятно, будет, то уже ничего не поможет

Вот ссылка на доки https://www.rabbitmq.com/reliability.html

Читаем


Data Safety on the Publisher Side
When using confirms, producers recovering from a channel or connection failure should retransmit any messages for which an acknowledgement has not been received from the broker. There is a possibility of message duplication here, because the broker might have sent a confirmation that never reached the producer (due to network failures, etc). Therefore consumer applications will need to perform deduplication or handle incoming messages in an idempotent manner.

Ключевая фраза - producers recovering from a channel or connection failure should retransmit any messages

Т.е. на стороне источника/продюсера просто обязана быть очередь переотправки сообщений, пусть в крайнем случае состоящая из одного последнего сообщения.

И хоть с брокером, хоть без брокера вам надо будет в любом случае реализовать функционал переотправки на источнике, если в требованиях есть обязательность доставки сообщений.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40103009
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Osipov,
Ты нас не пугай.
Работа ровно так как мы работаем с бд.
try
Отправка
...
Если у меня не было райзе, значит на моей стороне все нормально и зона ответственности на субд.
При MQ или МОМ архитектуре ответственность тоже не на мне.
Сообщение ушло в МОМ.
...
Получается ты любитель велосипеда и очередей за счет заказчика.
...
Рейтинг: 0 / 0
25 сообщений из 228, страница 8 из 10
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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