170 похожих чатов

> 0mq в принципе не может того, что может Кафка. Я

уже час пытаюсь от тебя это выяснить, что??? Что такого может Кафка?

27 ответов

10 просмотров

Нет сохранения сообщений (если упадет - все пропадет) Сообщение может быть недоставлено Нет кодирования сообщений Нет брокера

¿Сергей?
Нет сохранения сообщений (если упадет - все пропад...

Опять мимо…. что может Kafka, чего не может сделать 0mq быстрее?

Ты делаешь вид, что не заметил моего ответа, я понял Ну и ладно

Sergey- Автор вопроса
Sergey- Автор вопроса
Алексей Попов
Ты делаешь вид, что не заметил моего ответа, я пон...

Не заметил. Повторю вопрос? Что может такого Kafka чего не может zeromq?

Sergey- Автор вопроса
Sergey 🧻🤲
Персистентность

Опять мимо…. что может Kafka, чего не может сделать 0mq быстрее?

Sergey
Не заметил. Повторю вопрос? Что может такого Kafka...

Так как это всё ещё забавно, могу попробовать по одному пункту вкидывать Exactly once

Sergey 🧻🤲
Покажи пример быстрой персистентности на 0mq

я хуйней страдаю, присоединяйся на любой пункт просто отвечаешь "Опять мимо…. что может Kafka, чего не может сделать 0mq быстрее?"

Sergey- Автор вопроса
Алексей Попов
Так как это всё ещё забавно, могу попробовать по о...

Давай, я задал один вопрос. Интересно откуда ты какие-то пункты нашел

Sergey
Давай, я задал один вопрос. Интересно откуда ты ка...

Exactly once - опровержение будет? 0mq умеет в него?

Sergey
Давай, я задал один вопрос. Интересно откуда ты ка...

Все mq это тупой брокер. Одно сообщение - один клиент. Если хочется сделать что-то сложнее (fan-out, группы) то начинаются мучения

Sergey
Не заметил. Повторю вопрос? Что может такого Kafka...

Ты наверное сути этих инструментов не понимаешь. В своей сути, это канал связи. Фундаментально инструменты тут делятся на две группы. 1 группа, даёт в своей сути готовый "протокол". 2 группа даёт инструмент для реализации вещей, где "протокол" не даёт тех свойств, которые необходимы. Используя данные инструменты, ты соответственно лишаешся "надежности". Сравнивать либу и фреймворк нельзя. Это разные инструменты, каждый для своих задач. Да, где то их свойства пересекаются.

со всеобщего позволения отвечу Опять мимо…. что может Kafka, чего не может сделать 0mq быстрее?

Тупая Инфузория
со всеобщего позволения отвечу Опять мимо…. что ...

Какфка даёт всеобще признаную притокольную надёжность. С Зеро ты сам создаёшь соглашение под свои хотелки, отсюда отсутствие надежности.

Эркин Бахтушкин
Какфка даёт всеобще признаную притокольную надёжно...

Опять мимо…. что может Kafka, чего не может сделать 0mq быстрее?

Sergey
Давай, я задал один вопрос. Интересно откуда ты ка...

Чтобы попробовать закрыть гештальт, вернусь к перечисленным выше пунктам Гарантии доставки exactly once в 0mq нет. И нет в первую очередь потому, что нет гарантии доставки вообще: если клиент недоступен, сообщение будет потеряно. Сообщения, отправленные паблишерами, не хранятся в персистентном хранилище. Это то отсутствие журнала, про которое я писал выше. Тебя это возмутило, и если я не прав, покажи, пожалуйста, в чём я не прав. Я же нашёл в доке 0mq забавную фразу Reliability requires complexity that most of us don’t need. Не нужно вам это, короче 😁 В каких-то случаях действительно можно терять сообщения без ущерба для функционирования. Но далеко не всегда Ещё одно следствие отсутствия гарантий доставки - отсутствие гарантий на сохранение порядка сообщений. Опять же, для множества систем это может быть критически важно. Кафка позволяет гарантировать очерёдность даже для множества инстансов подписчика одного топика через партиции и группы. При этой схеме все сообщения с одинаковым ключом будут в порядке очередности предоставлены конкретному инстансу из группы. То есть не будет такой ситуации, что первое сообщения для пользователя А получил процесс 1, а второе процесс 2, и более быстрый процесс 2 отработал раньше процесса 1, что привело к несогласованности данных Ещё я писал про брокер. Брокер нужен для того, чтобы компоненты системы не были привязаны к текущей топологии. Чтобы новые сервисы можно было добавлять, удалять, переносить без изменений во всех остальных сервисах ZeroMQ is brokerless - они сами себя так описывают. Вроде всё очевидно. Сделать брокер самостоятельно можно, но из коробки его нет. Причём Кафка из коробки умеет поднимать кластер из множества брокеров, масштабировать партиции по брокерам. Реализовать подобную функциональность будет на порядок сложнее, чем реализовать одиночный брокер При всём сказанном выше я по прежнему считаю, что сравнивать кафку (и кролик, и натс - любой полноценный брокер) с 0mq на самом деле некорректно. Это инструменты для разных целей. Для ipc 0mq может быть очень хорошим вариантом. Пока мы остаёмся в рамках одной машины, нам может быть действительно важно общаться быстро, и гораздо проще будет учитывать все ограничения 0mq. Но полноценный брокер эта библиотека не заменит

Алексей Попов
Чтобы попробовать закрыть гештальт, вернусь к пере...

под конец темы с mq а не будет ли хорошей практикой абстрагироваться от message broker в приложении? или в большинстве случаев не имеет смысла?

Зависит от того, для чего используется брокер, и какие возможности вообще нужны Часто замена одного на другое невозможна или сложна технически, потому что кролик и Кафка используют разные подходы, и могут применяться для решения разных задач. Иногда в одном приложении одновременно используются несколько брокеров, каждый для своей цели (дискуссия о том, насколько это хорошая практика, вполне уместна, но тем не менее - так бывает) Но если ограничить применение брокера каким-то минимумом, который можно реализовать на каждом из них, такая абстракция вполне уместна. Одна из вещей, за которые я люблю молекулер - возможность одной строкой в конфиге менять транспорт между кафкой, кроликом, натсом, редисом, и чем угодно ещё, для чего существует адаптер При этом надо понимать, что в данном случае брокер будет использован только как транспорт. Его специфичные возможности могут не использоваться, сильные стороны могут игнорироваться. В примере с молекулером, например, не вижу зачем можно было бы использовать кафку или кролика, и, вероятно, всегда более оптимальным выбором будет натс или редис

Алексей Попов
Зависит от того, для чего используется брокер, и к...

спасибо за ответ у меня примерно такие же мысли былт, но не так структурировано

Алексей Попов
Зависит от того, для чего используется брокер, и к...

ну в молекулере делать несколько транспортеров одновременно это тот еще ад имею ввиду несколько брокеров в приложении

Andy Cox
ну в молекулере делать несколько транспортеров одн...

Про несколько брокеров в одном приложении - другой контекст, не связано с молекулером, и подразумевает использование брокеров для разных целей

Похожие вопросы

Обсуждают сегодня

$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
18
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
Ребята. Этот вопрос мучает меня уже 13 - 15 лет. Почему при валидации в ФормЛистере у поля phone поведение странноватое и отличается от других? А именно, вот набор правил д...
Андрей [aharito] Харитонов
1
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Карта сайта