Кафка и микросервисы - Вопросы архитектуры - PullRequest
1 голос
/ 19 сентября 2019

В архитектуре на основе микросервисов кто пишет в Kafka?сами сервисы или базы данных микросервисов?Я думал об этом и вижу плюсы и минусы обоих подходов, но склоняюсь к записи базы данных в темы Kafka, потому что

  1. База данных и данные в теме Kafka не будут синхронизированы в случаезапись в Kafka по какой-либо причине не удалась
  2. Прикладным командам не нужно будет делать еще один шаг, чтобы беспокоиться о
  3. Приложения могут продолжать фокусироваться на основной функции, а не беспокоиться о Кафке.

Спасибо за ваш вклад

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Как говорил cricket_007, базы данных обычно не могут писать в Apache Kafka;вместо этого вам потребуются службы сбора данных об изменениях, такие как Debezium, чтобы передавать изменения данных из базы данных в Kafka (заявление об отказе: я возглавляю Debezium).

Такой подход позволяет обеспечить (в конечном итоге) соответствие между собственной базой данных службы и сообщениями Kafka, отправляемыми другим службам.В конкретном приложении CDC я рекомендую изучить шаблон исходящие .Идея состоит в том, чтобы не фиксировать изменения в реальных бизнес-таблицах службы, а вместо этого работать с отдельной «исходящей таблицей», в которую служба записывает конкретные сообщения, предназначенные для использования другими службами.Затем CDC будет использоваться для отправки этих событий из этой таблицы в Kafka.

Этот подход позволяет избежать раскрытия внутренних структур данных внешним потребителям, а также избежать проблем "двойной записи", от которых страдает служба при прямой записи.в свою базу данных и Кафка.В Debezium есть некоторые средства встроенной поддержки шаблона исходящих сообщений с помощью преобразования сообщений, которые помогают направлять события из таблицы исходящих событий в специфичные для типа событий темы Kafka.

0 голосов
/ 19 сентября 2019

Не всем службам нужна база данных, они просто излучают данные (журналы, метрики, датчики и т. Д.)

Таким образом, ответ будет либо.

Кроме того, я не уверен, какую базу данных можно напрямую экспортировать в Kafka, поэтому у вас будет развернут какой-либо другой сервис, такой как Debezium, который будет опрашивать эти записи CDC из базы данных

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...