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

Ну, короче mq - это не про то. Это чтобы тебе доставить твой фид из точек [a,b,c,...] в точки [x,y,z,...]
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101262
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

- у решения Message-oriented middleware тоже есть для сообщений своя бд внутри.

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

- у решения Message-oriented middleware тоже есть для сообщений своя бд внутри.

Так все таки? БД или JMS/MQ ?

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

Так все таки? БД или JMS/MQ ?

Бд своя внутренняя для решения своих задач
- у ослика есть бд
- у винды в операционке есть бд
- у кафки есть бд
- у git есть бд

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

Например rss новых тем на форуме (которое работает через одно место). Браузер тыркает форумом запросами, форум иногда его обновляет.

Насколько я понимаю эта линка - конфигурация всех подписок на sql.ru?

https://www.sql.ru/forum/actualrss.aspx?id=11

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

С MQ удобно горизонтально масштабироваться. Выросла нагрузка? Добавил n инстансов (и не обязательно на один сервак). Надо под это затачивать систему, конечно. Можно делать и serverless, вкорячить какой-нибудь zeromq или сделать велик.

Полностью согласен насчет масштабирования. Эта точка приложения сил - самая легкая и алгоритмически
простая. Если масштабирование Real-Application-Cluster например для Оракла имеет объективные ограничения
(там выше 100 узлов уже может начинаться шторм служебного трафика) то для таких слабо-связных
систем или eventually связных - это число отодвинуто очень далеко.

Кроме того брокеры и продюсеры и консюмеры мы можем разделять спокойно до тех пор пока бизнес-логика
позволяет. Разделить DBMS на части - это тот еще челледж. Особенно чтобы ПОСЛЕ разделения БД сохраняла
те-же свойства что и до разделения.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101320
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

Нужно сделать броадкаст на n сервесов, которые находятся на m серверах. Как это сделать через фс? Монтировать её на этих m серверах? Уровень костылизма зашкалил.

Для соединения точка-точка это вполне себе работает. 1 месседж == 1 файл.
Только нужно гарантировать чтобы только 1 процесс брокера
считывал файлы. Иначе есть риск прочитать файл дважды.

Ордеринг (FIFO) мы гарантировали через хронологические названия файлов. Например шаблон
yyyy-mm-dd-hh-mm-ss-ms.xml в файловой системе NTFS5 всегда сохранялся в директории
с сортированном порядке (это свойство NTFS) и извлекая файлы листингом директории
мы получали коробочную сортировку без усилий.

Мы строили такую систему в 2003 году. На базе Microsoft.Net.

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


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

И что твоё приложение после этого? Монолит? Не?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101325
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev

crutchmasterИ кроме того мне непонятно как с фидами поддержать FIFO? Будет ли отслеживаться хронология событий?
Ну тут два варианта:
1. Наши события - эт не события, а просто сущности в БД отсортированные по дате модификации. Но тогда сущность может "прыгать" по фиду. Сначала она была в мартовском фиде, теперь в августовском. Это не требует доп таблиц.
2. Ну или заводим доп таблицу с событиями и записываем их в БД. Это в любом случае нередко удобно для аудитов и дебагинга.

В общем как я уже и говорил - я с этим удачно работаю. Это оочень удобно.
Тут было неверно квотировано. Вопрос по хронолгии - это мой вопрос.

По поводу прыгающих сущностей и доп таблиц. Я голосую против. Потому-что Consumer должен быть простым.
Тоесть если я и Петро к примеру подписались на новости изменения цен на акции Luxoft или Yandex, то
мы не хотим парсить никаких фидов и вообще мы ничего не хотим делать на клиене.

Мы просто делаем цикл или хендлер наподобие того что я приводил из учебных примеров и имеем
новости по ценам на акции.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Component
public class Receiver {

  @JmsListener(....)
  public void receiveMessage(EquityNews equity) {
     .....
  }

}



Кстати подписка - важный момент. Если я уже прочитал новость а Петро еще не прочитал - то брокер
будет хранить ее хоть 1000 лет (на самом деле согласно политике retention которая описана в брокере)
и Петро получит свои новости по акциям когда поднимет свой упавший Consumer.

И те господа которые в качестве аналогии MQ систем приводят толи сокеты... толи еще какие-то упрощения
- почему-то игнорируют такой юзкейс. Или я не знаю сколько я еще должен поднять технологий и структур
данных чтобы превратить пускай самый быстрый сокет в аналог полноценного брокера с подпиской.

Кстати Kafka в организации хранения сообщений очень экономна. Ей достаточно хранить только offset прочитанного
для каждого потребителя. Группа соотв - должна хранить группу оффсетов.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101326
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Щас у нас на проекте активно избавляются от REST и переходят на GraphQL для фронта.

И как впечатления от GraphQL?

Мне показалось что слишком сложно для большинства простых потребителей контента.

GraphQL в смысле КОНТЕНТА предлагает офигенскую фичу. Вы получаете на response
трафик который содержит только те поля и суб-документы которые зареквестили.

Но чтобы эту фичу полноценно реализовать - нужна либо какая-то очень гибка DBMS
наподобие графовой. Либо нужен чудовищно-сложный SQL-билдер запросов
который может вытянуть вообще всю твою базу в зависимости от того что
юзер запросил в реквесте.

Если вы искусственно ограничите этот билдер и скажете что - нахрена дескыть
тянуть дочерние суб-таблицы. Пускай сделают 2-мя GrapQL реквестами.

То возникает вопрос. А нахрена вы вообще брали GraphQL?

У вас - REST-style сборки модели ответа!

Вернитесь обратно в REST!
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101327
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

авторКстати подписка - важный момент. Если я уже прочитал новость а Петро еще не прочитал - то брокер
будет хранить ее хоть 1000 лет (на самом деле согласно политике retention которая описана в брокере)
и Петро получит свои новости по акциям когда поднимет свой упавший Consumer.
вообще, это основной момент для использования MQ
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101329
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Чем больше систем, тем меньше ресурсов в среднем мы тратим. Эти проблемы все решаются простым кешированием. В открытом вебе еще добавляют тротлинг. В вебе в принципе мы не работаем с MQ (во всяком случае я никогда не видел таких решений), я не уверен что MQ в принципе масштабируется до таких размеров и нагрузок.

По теме топика, Станислав, ваше предложение - самое интересное.

Но я честно говоря не совсем понимаю какого рода сервис вы предоставляете?
Возможно сервис фидов это не совсем MQ. Это скорее ... SNAPSHOT сервис
где нам предлагается самим собрать последние новости.

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

У нас gRPC в основном асинхронно работает.

Я не знаком с gRPC и не использовал его. Но фичей преподносится некий гугловый вариант
компактной сериализации данных. Эту сериализацию вообще интересно рассматривать
только в сравнении со смежными технологиями такими как

- Apache AVRO
- Apache Thrift

В моём понимании они делают тоже самое. Это как ... сравнивать 5 видов json форматов.
Вроде они разные. Но внутри всё тоже самое.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101378
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
gRPC это упрощенная версия SOAP.
Удаленный вызов процедур на java клиенте, или дельфи клиенте.
Понятно что это (RPC) к сабжу не относится.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101383
mayton
По поводу прыгающих сущностей и доп таблиц. Я голосую против. Потому-что Consumer должен быть простым.
Тоесть если я и Петро к примеру подписались на новости изменения цен на акции Luxoft или Yandex, то
мы не хотим парсить никаких фидов и вообще мы ничего не хотим делать на клиене.
Ну чем жесче требования, тем больше прийдется делать. В моем случае прыгающие сущности были норм потому как клиент идемпотентент и ему норм забрать одни и те же изменения два раза. Если это не устраивает, то прийдется создавать таблицу событий.
maytonНо я честно говоря не совсем понимаю какого рода сервис вы предоставляете?
Возможно сервис фидов это не совсем MQ. Это скорее ... SNAPSHOT сервис
где нам предлагается самим собрать последние новости.

Верно ли я понял? И можете привести пример такого ответа от вашего фид-сервиса.
Ну например я захотел фид по ценам на акции it-компаний.В моем случае Системой А пользуется один отдел, он сабмитит данные в Систему Б которой пользуется другой отдел. После того как Отдел Б закончил с заявкой, мы хотим результаты увидеть в Системе А. И вот Система А поллит события и забирает данные. И пользователь из Отдела А видит результаты на UI.

Если быть более конкретными: Отдел А - это химики которые синтезировали вещества, а Отдел Б - это химики которые очищают результат и получают чистый продукт. Система А соответственно сабмитить какие молекулы мы ожидаем, плюс предпочтения по очистке, а Система Б - регистрирует результат очистки (это картинки плюс данные), мол, сколько там получилось, какая чистота, регистрационный номер.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101386
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev,
Ну, жуткий велосипед. Чего уж тут стеснятся.
Разработчики уже немолодые люди.
Вероятно логирование тоже рукописное.
Бывает.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101387
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JMS/MQ система не обязательно должна поставлять полный документ. Если отдел А уведомляет отдел Б
о том что результат уже готов - он может прислать мессендж с линком на хранилище где уже лежит
отчот. Это решает многие вопросы нагрузок.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101390
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то странно. если в работе есть одно вещество, по которому идет работа и один отдел его делает, а второй отдел его чистит, то завести информационный объект "тетрадимитилгидрохлорид", а в системе каждого отдела, осуществляющего операцию по веществу, по завершении каждой операции выслать сообщение по итогам каждой операции. кто на событие очистка подписался, тот уведомление и получает.
а так выглядит велосипедом
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101396
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrU,
У него событие это Push сообщение. То есть от сервера клиенту.
HTTP1 это не умеет. HTTP2 уже умеет.
Но они циклом опрашивают сервер на предмет новостей.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101397
Мне кажется здесь люди не очень понимают программерскую терминологию.. Или просто хочется кинуть камнем, но не умеючи - не выходит :) Велосипед - это создание чего-то, что уже существует. Как в случае собсно велосипеда, который изобретали два раза.

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

- Асинхронно (MQ) - низкий latency

Нет такого требования. Низкий latency как раз важен для классических REST/SOAP систем.
Для JMS/MQ это требование как раз может быть смягчено за счет других бизнес требований
и конфигурации. Те-же гарантии доставки например и транзакции.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101406
mayton
Stanislav Bashkyrtsev

- Асинхронно (MQ) - низкий latency

Нет такого требования. Низкий latency как раз важен для классических REST/SOAP систем.
Для JMS/MQ это требование как раз может быть смягчено за счет других бизнес требований
и конфигурации. Те-же гарантии доставки например и транзакции.
Это не требование - это результат асинхронной архитектуры.
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101426
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Асинхронно (MQ) - низкий latency, но хуже с масштабируемостью и сложней дебаг
- Синхронно (polling) - высокий latency (хотя это можно обойти добавив таки немного асинхронности), лучше с масштабируемостью (если допустимы кэши), проще дебаг

Ну и еще есть куча методов. Чё только один привел?
Вот бегать в магазин каждые 5 сек спрашивая завезли ли хлеб, и есть ВЕЛОСИПЕД.)))))
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101471
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev

- Синхронно (polling) - высокий latency (хотя это можно обойти добавив таки немного асинхронности), лучше с масштабируемостью (если допустимы кэши), проще дебаг
что? что вы называете Polling?
...
Рейтинг: 0 / 0
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
    #40101480
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),
Вместо коллбэка клиент ставит таймер и каждые 5сек спрашивает новости у старшего брата сервера
...
Рейтинг: 0 / 0
25 сообщений из 228, страница 2 из 10
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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