|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev, Ну, короче mq - это не про то. Это чтобы тебе доставить твой фид из точек [a,b,c,...] в точки [x,y,z,...] ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 11:57 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp - у решения Message-oriented middleware тоже есть для сообщений своя бд внутри. Так все таки? БД или JMS/MQ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 12:00 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp - у решения Message-oriented middleware тоже есть для сообщений своя бд внутри. Так все таки? БД или JMS/MQ ? Бд своя внутренняя для решения своих задач - у ослика есть бд - у винды в операционке есть бд - у кафки есть бд - у git есть бд ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 12:03 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton пропущено... Так все таки? БД или JMS/MQ ? Бд своя внутренняя для решения своих задач - у ослика есть бд - у винды в операционке есть бд - у кафки есть бд - у git есть бд Ну это не тот ответ который я хотел услышать. Впрочем это даже вопрос не к тебе а ко всем участникам. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 13:32 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
crutchmaster mayton Я признаться... про RSS мало знаю. Например rss новых тем на форуме (которое работает через одно место). Браузер тыркает форумом запросами, форум иногда его обновляет. Насколько я понимаю эта линка - конфигурация всех подписок на sql.ru? https://www.sql.ru/forum/actualrss.aspx?id=11 Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 13:35 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
crutchmaster С MQ удобно горизонтально масштабироваться. Выросла нагрузка? Добавил n инстансов (и не обязательно на один сервак). Надо под это затачивать систему, конечно. Можно делать и serverless, вкорячить какой-нибудь zeromq или сделать велик. Полностью согласен насчет масштабирования. Эта точка приложения сил - самая легкая и алгоритмически простая. Если масштабирование Real-Application-Cluster например для Оракла имеет объективные ограничения (там выше 100 узлов уже может начинаться шторм служебного трафика) то для таких слабо-связных систем или eventually связных - это число отодвинуто очень далеко. Кроме того брокеры и продюсеры и консюмеры мы можем разделять спокойно до тех пор пока бизнес-логика позволяет. Разделить DBMS на части - это тот еще челледж. Особенно чтобы ПОСЛЕ разделения БД сохраняла те-же свойства что и до разделения. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 13:41 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
crutchmaster Нужно сделать броадкаст на n сервесов, которые находятся на m серверах. Как это сделать через фс? Монтировать её на этих m серверах? Уровень костылизма зашкалил. Для соединения точка-точка это вполне себе работает. 1 месседж == 1 файл. Только нужно гарантировать чтобы только 1 процесс брокера считывал файлы. Иначе есть риск прочитать файл дважды. Ордеринг (FIFO) мы гарантировали через хронологические названия файлов. Например шаблон yyyy-mm-dd-hh-mm-ss-ms.xml в файловой системе NTFS5 всегда сохранялся в директории с сортированном порядке (это свойство NTFS) и извлекая файлы листингом директории мы получали коробочную сортировку без усилий. Мы строили такую систему в 2003 году. На базе Microsoft.Net. Бродкаста (подписок на топики) у нас не было. Просто было специфичное ТЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 13:47 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
crutchmaster Не хочешь/нечего разделять на куски - не разделяешь, пилишь дальше свой монолит. Да не в монолите дело. И хотя я чаще голосую за монолит. Просто сама жизнь и сами условия ведения бизнеса диктуют если не разделение задачи на части - то просто интеграцию. Ты делаешь спокойно монолит. Потом к тебе приходит бизнес и говорит - вот нам тут надо черпать тикеры и прайсы из такой-то и такой-то системы. И ничего тут не поделаешь. И что твоё приложение после этого? Монолит? Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 13:50 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev crutchmasterИ кроме того мне непонятно как с фидами поддержать FIFO? Будет ли отслеживаться хронология событий? 1. Наши события - эт не события, а просто сущности в БД отсортированные по дате модификации. Но тогда сущность может "прыгать" по фиду. Сначала она была в мартовском фиде, теперь в августовском. Это не требует доп таблиц. 2. Ну или заводим доп таблицу с событиями и записываем их в БД. Это в любом случае нередко удобно для аудитов и дебагинга. В общем как я уже и говорил - я с этим удачно работаю. Это оочень удобно. Тут было неверно квотировано. Вопрос по хронолгии - это мой вопрос. По поводу прыгающих сущностей и доп таблиц. Я голосую против. Потому-что Consumer должен быть простым. Тоесть если я и Петро к примеру подписались на новости изменения цен на акции Luxoft или Yandex, то мы не хотим парсить никаких фидов и вообще мы ничего не хотим делать на клиене. Мы просто делаем цикл или хендлер наподобие того что я приводил из учебных примеров и имеем новости по ценам на акции. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Кстати подписка - важный момент. Если я уже прочитал новость а Петро еще не прочитал - то брокер будет хранить ее хоть 1000 лет (на самом деле согласно политике retention которая описана в брокере) и Петро получит свои новости по акциям когда поднимет свой упавший Consumer. И те господа которые в качестве аналогии MQ систем приводят толи сокеты... толи еще какие-то упрощения - почему-то игнорируют такой юзкейс. Или я не знаю сколько я еще должен поднять технологий и структур данных чтобы превратить пускай самый быстрый сокет в аналог полноценного брокера с подпиской. Кстати Kafka в организации хранения сообщений очень экономна. Ей достаточно хранить только offset прочитанного для каждого потребителя. Группа соотв - должна хранить группу оффсетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 14:02 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mad_nazgul Щас у нас на проекте активно избавляются от REST и переходят на GraphQL для фронта. И как впечатления от GraphQL? Мне показалось что слишком сложно для большинства простых потребителей контента. GraphQL в смысле КОНТЕНТА предлагает офигенскую фичу. Вы получаете на response трафик который содержит только те поля и суб-документы которые зареквестили. Но чтобы эту фичу полноценно реализовать - нужна либо какая-то очень гибка DBMS наподобие графовой. Либо нужен чудовищно-сложный SQL-билдер запросов который может вытянуть вообще всю твою базу в зависимости от того что юзер запросил в реквесте. Если вы искусственно ограничите этот билдер и скажете что - нахрена дескыть тянуть дочерние суб-таблицы. Пускай сделают 2-мя GrapQL реквестами. То возникает вопрос. А нахрена вы вообще брали GraphQL? У вас - REST-style сборки модели ответа! Вернитесь обратно в REST! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 14:10 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mayton, авторКстати подписка - важный момент. Если я уже прочитал новость а Петро еще не прочитал - то брокер будет хранить ее хоть 1000 лет (на самом деле согласно политике retention которая описана в брокере) и Петро получит свои новости по акциям когда поднимет свой упавший Consumer. вообще, это основной момент для использования MQ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 14:12 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Чем больше систем, тем меньше ресурсов в среднем мы тратим. Эти проблемы все решаются простым кешированием. В открытом вебе еще добавляют тротлинг. В вебе в принципе мы не работаем с MQ (во всяком случае я никогда не видел таких решений), я не уверен что MQ в принципе масштабируется до таких размеров и нагрузок. По теме топика, Станислав, ваше предложение - самое интересное. Но я честно говоря не совсем понимаю какого рода сервис вы предоставляете? Возможно сервис фидов это не совсем MQ. Это скорее ... SNAPSHOT сервис где нам предлагается самим собрать последние новости. Верно ли я понял? И можете привести пример такого ответа от вашего фид-сервиса. Ну например я захотел фид по ценам на акции it-компаний. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 14:13 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mad_nazgul У нас gRPC в основном асинхронно работает. Я не знаком с gRPC и не использовал его. Но фичей преподносится некий гугловый вариант компактной сериализации данных. Эту сериализацию вообще интересно рассматривать только в сравнении со смежными технологиями такими как - Apache AVRO - Apache Thrift В моём понимании они делают тоже самое. Это как ... сравнивать 5 видов json форматов. Вроде они разные. Но внутри всё тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 14:18 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mayton, gRPC это упрощенная версия SOAP. Удаленный вызов процедур на java клиенте, или дельфи клиенте. Понятно что это (RPC) к сабжу не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 15:54 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mayton По поводу прыгающих сущностей и доп таблиц. Я голосую против. Потому-что Consumer должен быть простым. Тоесть если я и Петро к примеру подписались на новости изменения цен на акции Luxoft или Yandex, то мы не хотим парсить никаких фидов и вообще мы ничего не хотим делать на клиене. maytonНо я честно говоря не совсем понимаю какого рода сервис вы предоставляете? Возможно сервис фидов это не совсем MQ. Это скорее ... SNAPSHOT сервис где нам предлагается самим собрать последние новости. Верно ли я понял? И можете привести пример такого ответа от вашего фид-сервиса. Ну например я захотел фид по ценам на акции it-компаний.В моем случае Системой А пользуется один отдел, он сабмитит данные в Систему Б которой пользуется другой отдел. После того как Отдел Б закончил с заявкой, мы хотим результаты увидеть в Системе А. И вот Система А поллит события и забирает данные. И пользователь из Отдела А видит результаты на UI. Если быть более конкретными: Отдел А - это химики которые синтезировали вещества, а Отдел Б - это химики которые очищают результат и получают чистый продукт. Система А соответственно сабмитить какие молекулы мы ожидаем, плюс предпочтения по очистке, а Система Б - регистрирует результат очистки (это картинки плюс данные), мол, сколько там получилось, какая чистота, регистрационный номер. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 16:24 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev, Ну, жуткий велосипед. Чего уж тут стеснятся. Разработчики уже немолодые люди. Вероятно логирование тоже рукописное. Бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 16:52 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
JMS/MQ система не обязательно должна поставлять полный документ. Если отдел А уведомляет отдел Б о том что результат уже готов - он может прислать мессендж с линком на хранилище где уже лежит отчот. Это решает многие вопросы нагрузок. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 16:59 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
как то странно. если в работе есть одно вещество, по которому идет работа и один отдел его делает, а второй отдел его чистит, то завести информационный объект "тетрадимитилгидрохлорид", а в системе каждого отдела, осуществляющего операцию по веществу, по завершении каждой операции выслать сообщение по итогам каждой операции. кто на событие очистка подписался, тот уведомление и получает. а так выглядит велосипедом ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 17:07 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
monstrU, У него событие это Push сообщение. То есть от сервера клиенту. HTTP1 это не умеет. HTTP2 уже умеет. Но они циклом опрашивают сервер на предмет новостей. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 17:34 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Мне кажется здесь люди не очень понимают программерскую терминологию.. Или просто хочется кинуть камнем, но не умеючи - не выходит :) Велосипед - это создание чего-то, что уже существует. Как в случае собсно велосипеда, который изобретали два раза. Оповещения о событиях решаться может двумя способами: - Асинхронно (MQ) - низкий latency, но хуже с масштабируемостью и сложней дебаг - Синхронно (polling) - высокий latency (хотя это можно обойти добавив таки немного асинхронности), лучше с масштабируемостью (если допустимы кэши), проще дебаг ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 17:35 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev - Асинхронно (MQ) - низкий latency Нет такого требования. Низкий latency как раз важен для классических REST/SOAP систем. Для JMS/MQ это требование как раз может быть смягчено за счет других бизнес требований и конфигурации. Те-же гарантии доставки например и транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 17:44 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
mayton Stanislav Bashkyrtsev - Асинхронно (MQ) - низкий latency Нет такого требования. Низкий latency как раз важен для классических REST/SOAP систем. Для JMS/MQ это требование как раз может быть смягчено за счет других бизнес требований и конфигурации. Те-же гарантии доставки например и транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 17:56 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Асинхронно (MQ) - низкий latency, но хуже с масштабируемостью и сложней дебаг - Синхронно (polling) - высокий latency (хотя это можно обойти добавив таки немного асинхронности), лучше с масштабируемостью (если допустимы кэши), проще дебаг Ну и еще есть куча методов. Чё только один привел? Вот бегать в магазин каждые 5 сек спрашивая завезли ли хлеб, и есть ВЕЛОСИПЕД.))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 18:55 |
|
Зачем мы вообще используем JMS/MQ системы? (четверговый топик)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev - Синхронно (polling) - высокий latency (хотя это можно обойти добавив таки немного асинхронности), лучше с масштабируемостью (если допустимы кэши), проще дебаг ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 23:04 |
|
|
start [/forum/topic.php?fid=59&msg=40101480&tid=2120331]: |
0ms |
get settings: |
18ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
34ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
434ms |
get tp. blocked users: |
1ms |
others: | 402ms |
total: | 900ms |
0 / 0 |