Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53399
witte
А то коллега утверждает что в банках сплошные оптимисты работают.

А вы таки утверждаете, что банки готовы увидеть ответ на заявку в скоринговую систему, пришедший через пару суток после его отправки, поскольку сервер очереди внезапно упал и его всё это время подымали с восстановлением этой самой очереди?..
9 авг 20, 14:07    [22179798]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
hVostt
Member

Откуда:
Сообщений: 19317
witte
Может MQ обеспечить гарантированную доставку сообщения или нет?


Если бы не могли, нафиг бы такие очереди не упёрлись и никто бы их не использовал.
Странные вообще вопросы. Про какие конкретно MQ речь.
9 авг 20, 21:45    [22179900]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
bukinator
Member

Откуда:
Сообщений: 45
Опять флуд развели на несколько страниц, обсуждают одно, а вопрос был про другое. Никто не спрашивал про надежность хранения данных в очередях, спросили элементарный вопрос, который я перефразирую оот аффтара еще раз (и от нескольких других человек с первой страницы):

зачем использовать очереди (MQ) и передавать туда данные для последующего чтения обработчиками, когда можно сохранять НЕОБРАБОТАННЫЕ (в виде простого JSON) данные в СУБД, а дальше в тех же обработчиках запускать джобы, которыми читать эти данные абсолютно по ТОЙ ЖЕ АНАЛОГИИ, как это происходит с очередями?

А то вспомнили и про триггеры в БД, и про надежность хранения, и еще про что-то, а на вопрос по сути было только 2 противоречивых ответа:

1) очередь якобы нужна:
автор
Для задач, выстроенных на очередях, СУБД имеет миллиард лишней функциональности, которая в этом случае с одной стороны не используется, а с другой - мешает и тормозит процесс.


2)очередь якобы не нужна:
автор
очередии нужны очень редко
в 99 процентов случаем можно вставлять в БД и потом запускать джобу для асинхронной обработки вставленных данных


так в итоге "нужна" или "не нужна" и легко заменяется табличкой в СУБД? Если второе, то почему очереди пихают вообще везде?
17 май 21, 13:20    [22323061]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53399
Я могу перефразировать этот вопрос ещё короче: "зачем использовать готовые очереди, если их можно реализовать самому в СУБД". Так ответ становится ещё более очевидным.
17 май 21, 13:44    [22323071]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
bukinator
Member

Откуда:
Сообщений: 45
автор
Я могу перефразировать этот вопрос ещё короче: "зачем использовать готовые очереди, если их можно реализовать самому в СУБД". Так ответ становится ещё более очевидным.

Я понял, что вы намекаете, что готовый MQ якобы проще использовать. Но вот мне ( я думаю, что еще куче других людей) кажется все наоборот, что гораздо проще развернуть SQL-сервер c 1 табличкой и из паблишеров записывать данные туда, а из джобов консумеров читать оттуда (казалось бы, что может быть проще)?
17 май 21, 13:49    [22323077]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
bukinator
автор
Я могу перефразировать этот вопрос ещё короче: "зачем использовать готовые очереди, если их можно реализовать самому в СУБД". Так ответ становится ещё более очевидным.

Я понял, что вы намекаете, что готовый MQ якобы проще использовать. Но вот мне ( я думаю, что еще куче других людей) кажется все наоборот, что гораздо проще развернуть SQL-сервер c 1 табличкой и из паблишеров записывать данные туда, а из джобов консумеров читать оттуда (казалось бы, что может быть проще)?

А вдруг 2 раза прочитаешь то что уже записано? Контракт очередей такое не предусматривает. А SELECT в БД - позволяет.
17 май 21, 13:56    [22323085]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
Dima T
Member

Откуда:
Сообщений: 15796
bukinator
так в итоге "нужна" или "не нужна" и легко заменяется табличкой в СУБД? Если второе, то почему очереди пихают вообще везде?

Все определяется производительностью: очереди быстрее работают и легче масштабируются.
17 май 21, 14:12    [22323093]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
bukinator
Member

Откуда:
Сообщений: 45
автор
. А SELECT в БД - позволяет.


Begin transaction
Select
Delete
Commit
17 май 21, 14:28    [22323104]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
bukinator
автор
. А SELECT в БД - позволяет.


Begin transaction
Select
Delete
Commit

Ты серъезно считаешь что это выгодно и дешево?

Сообщение было отредактировано: 17 май 21, 14:28
17 май 21, 14:36    [22323107]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
booby
Member

Откуда:
Сообщений: 2534
mayton
bukinator
пропущено...


Begin transaction
Select
Delete
Commit

Ты серъезно считаешь что это выгодно и дешево?


В любом случае нечто подобное, независимо от того, дорого это или ненадёжно, медленно на диске или расточительно в памяти, будет происходить.

Весь вопрос в том, как обеспечить "select" единственному котролирующему удаление читателю так, что бы не просто другой
удалятель не прочитал, а ещё и не простаивали невычитанными соседние сообщения, предназначенные другому читателю.
Вот почти и всё.
17 май 21, 14:50    [22323118]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
И чтобы он не завис в сети, потеряв commit.
17 май 21, 15:01    [22323125]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
booby
Member

Откуда:
Сообщений: 2534
mayton
И чтобы он не завис в сети, потеряв commit.


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

Сообщение было отредактировано: 17 май 21, 15:07
17 май 21, 15:15    [22323134]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Или зачем нам Оракле когда есть LevelDb.
17 май 21, 15:47    [22323154]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
xerxf
Member

Откуда:
Сообщений: 261
bukinator
Если второе, то почему очереди пихают вообще везде?

мода - страшное дело.. Как начнётся на какой нибудь подход мода- так его и начинают пихать везде. где надо и не надо.
Я помню одно время было модно наглухо закрывать доступы к таблицам и весь доступ к данным делать только через хранимки. и такие же холивары были с объяснением того, что так не делают только те, кто застрял в каменном веке.. А сейчас мода, что любая логика в БД это фу фу, жуткий легаси и нормальные люди так не делают. и другие подходы пролетели и закончились. наверняка так и очереди с микросервисами пройдут и остануться там, где это реально оправдано. ну, или в жутком легаси, на который нормальным программистам и смотреть то западло :-)
17 май 21, 20:08    [22323311]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
xerxf
Member

Откуда:
Сообщений: 261
bukinator
автор
Я могу перефразировать этот вопрос ещё короче: "зачем использовать готовые очереди, если их можно реализовать самому в СУБД". Так ответ становится ещё более очевидным.

Я понял, что вы намекаете, что готовый MQ якобы проще использовать. Но вот мне ( я думаю, что еще куче других людей) кажется все наоборот, что гораздо проще развернуть SQL-сервер c 1 табличкой и из паблишеров записывать данные туда, а из джобов консумеров читать оттуда (казалось бы, что может быть проще)?

А вот так делать точно не надо. паблишеры и консьюмеры это классическая задачка на использование очередей. смысл изобретать велосипед?
17 май 21, 20:10    [22323313]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
bantik
Member

Откуда:
Сообщений: 501
Nick-name
Поясню, свой странный вопрос, я впервые с толкнулся с серверами очередей, пример использования был на примере сбора заявок(сообщений) в очередь с последующей их обработкой.
Вот чего я не понял, в чем преимущество перед тем, как если бы я просто писал эти заявки в базу а потом читал?

Наверно просто пример не очень хороший привели.


Ну как минимум в горизонтальной масштабируемости. Допустим ваши сервисы льют друг другу через Kafka события, даже еще допустим в парадигме Event-Carried State Transfer - т.е. по факту у вас чуть не в двойном-тройном размере вся база будет в оперативке. Ну и смысл скажете - что мешало положить все сущности в бД и транзачить их SQL update ... Вот как раз тем - что даже супер-пупер компьютер - это всего 256 ядер.. а количество нод в узлах Kafka, да еще с кучей реплик топика - может быть бесконечно.. и добавлять можно мягко, по мере развития бизнеса
18 май 21, 00:25    [22323391]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
bukinator
Member

Откуда:
Сообщений: 45
автор
Begin transaction
Select
Delete
Commit

автор
Ты серъезно считаешь что это выгодно и дешево?

Ну, я на низком уровне не шарю, как работает код СУБД, но я как бы знаю, что транзакции замедляют запросы, т.к., во-первых, заблокирует чтение первого селекта второй транзакций до окончания первой транзакции (если вторая транзакция вообще еще пойдет в тот же момент), а во-вторых, транзакции тратят время на запись в лог транзакций, но неужели они прямо таки НАСТОЛЬКО это все замедляют, что это вмиг становится невыгодно и дорого?
18 май 21, 13:16    [22323564]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
bukinator,

Нет. Замедляют не транзакции, а программисты которые не умеют их готовить или используют не по назначению.

Как результат, программист делает убогую однопотоковую реализацию недо-очереди на СУБД, а ругаем транзакции и базы данных за якобы "медленность".

IMHO
18 май 21, 13:29    [22323578]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65894
Блог
Leonid Kudryavtsev
Замедляют не транзакции, а программисты

Транзакции тоже замедляют. Их поддержка имеет свою цену, и немалую.

Другой вопрос, что в типичной ситуации "1% тормозов от транзакций, 99% - от программиста" типичный программист борется с транзакциями.
18 май 21, 13:46    [22323596]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
bukinator
автор
Begin transaction
Select
Delete
Commit

автор
Ты серъезно считаешь что это выгодно и дешево?

Ну, я на низком уровне не шарю, как работает код СУБД, но я как бы знаю, что транзакции замедляют запросы, т.к., во-первых, заблокирует чтение первого селекта второй транзакций до окончания первой транзакции (если вторая транзакция вообще еще пойдет в тот же момент), а во-вторых, транзакции тратят время на запись в лог транзакций, но неужели они прямо таки НАСТОЛЬКО это все замедляют, что это вмиг становится невыгодно и дорого?

Была статья Стоунбрейкера где он потратил немало человеко-часов на анализ куда сгорают мега-флопы в реляционных
БД и ... узнал что на 30% на поддержку механики блокировок и версий. После этого старик тронулся рассудком.
Проклял свои разработки и впал в тоску и печаль. Одел хитон и ходил с посохом и рассказывал что надо разделять
OLAP и хранилища на разные системы и тому подобное.
18 май 21, 16:59    [22323733]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
booby
Member

Откуда:
Сообщений: 2534
mayton,

по крайней мере, он не утопился, как другой человек, внезапно осознавший,
что multiversion concurrency control, это рабочая модель, а не техническая ошибка.
18 май 21, 18:11    [22323773]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
Dima T
Member

Откуда:
Сообщений: 15796
bukinator
автор
Begin transaction
Select
Delete
Commit

автор
Ты серъезно считаешь что это выгодно и дешево?

Ну, я на низком уровне не шарю, как работает код СУБД, но я как бы знаю, что транзакции замедляют запросы, т.к., во-первых, заблокирует чтение первого селекта второй транзакций до окончания первой транзакции (если вторая транзакция вообще еще пойдет в тот же момент), а во-вторых, транзакции тратят время на запись в лог транзакций, но неужели они прямо таки НАСТОЛЬКО это все замедляют, что это вмиг становится невыгодно и дорого?

Допустим медленнее в 5 раз это тормоз или нет? Если у тебя используется 1% доступной производительности, то 5% тоже не тормоз, но если ты нагрузил на 30%, то у тебя уже нет 150%, а только 100%, будет тупить.

Вобщем ты можешь купить железяку помощнее, сеть сделать побыстрее, т.е. вложить бабла, а можешь сменить алгоритм.
18 май 21, 21:07    [22323836]     Ответить | Цитировать Сообщить модератору
 Re: Поясните, в чем преимущество серверов очередей перед базой данных  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
mayton

...
Была статья Стоунбрейкера где он потратил немало человеко-часов на анализ куда сгорают мега-флопы в реляционных
БД и ... узнал что на 30% на поддержку механики блокировок и версий. После этого старик тронулся рассудком.
Проклял свои разработки и впал в тоску и печаль. Одел хитон и ходил с посохом и рассказывал что надо разделять
OLAP и хранилища на разные системы и тому подобное.

1. Какие блокировки и версии в OLAP системах?
2. Подозреваю, в большинстве систем мега-флопы сгорают на сортировках. На ORDER BY'ах. Блокировки и версии стоят в сторонке и завидуют.
19 май 21, 14:21    [22324175]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Вопрос-Ответ Ответить