Pull to refresh

Comments 14

Хм, а в чем разница с использованием ActiveMQ? Или еще каких систем сообщений? Это ведь просто реализация JMS? Или нет?
Ну разница примерно как грузовые автомобили разных производителей… какой конкретно подходит вам — зависит от того, что конкретно вам нужно :)

Изначальная мысль в вопросе была, что не плохо бы было рассказать про разницу в этих серверах. :)

Наверное, это тема отдельной большой статьи… причём для каждой пары — своей… всё-таки, несмотря на то, что «у всех машин 4 колеса» отличаются они — существенно.
www.oreilly.com/library/view/understanding-message-brokers/9781492049296
тут наглядным образом показана разница.
коротко:
kafka работает в памяти(по умолчанию), activemq с диском;
kafka горизонтально масштабируема, activemq только вертикально;
kafka может потерять сообщение, activemq нет.
UFO just landed and posted this here
Указывать незнакомому человеку что ему делать — как то неправильно, не находите?
Вот отрывок из приведенно вами документации:
This suggests a design which is very simple: rather than maintain as much as possible in-memory and flush it all out to the filesystem in a panic when we run out of space, we invert that. All data is immediately written to a persistent log on the filesystem without necessarily flushing to disk. In effect this just means that it is transferred into the kernel's pagecache.

Вы сами ее читали? Остальное даже обсуждать нет желания. С таким настроем только бабушек видел на скмейках, а что они кричат и сами знаете.
В приведённом вами отрывке сказано, что Kafka немедленно записывает на диск изменения вместо того, чтобы держать всё в памяти и срочно сбрасывать всё на диск когда память заканчивается. Такой подход называется Write Ahead Log, часто применяется в СУБД и гарантирует букву D в аббревиатуре ACID.
Kafka, вообще говоря, способна не терять сообщения и даже гарантировать их обработку если выполнить все требования для Exactly Once обработки.
Что же касается «не теряния сообщений», то скорее этому подвержены ActiveMQ решения. Строго говоря стандарт содержит транзакции, но кого это волнует?
Думаю стоит также упомянуть про утилиту kafkacat для удобной работы с консоли с кафкой и возможно про такие вещи как KSQL
Запуск локальной Кафки в свое время показался сложным, поэтому допилил вариант в контейнере. Погонять хелловорлды вполне хватит:
github.com/BubaVV/kafka_docker_helloworld
А в IntelliJ IDEA 2020.1 ещё и автодополнение топиков и find usages завезли для Kafka:
image
никакого GUI для управления Kafka нет

если бы дело происходило не в Винде, то такого вопроса даже не возникло бы
Вместо ковыряния в конфигах и привязки в винде, думаю, разумнее было бы просто запустить кафку в контейнере и показать, как с ней можно работать. Я так понимаю, главный посыл статьи был как раз в этом.
А образ для контейнера можно использовать готовый.
Sign up to leave a comment.

Articles