Как мне настроить разделы Kafka и темы в моей настройке? - PullRequest
0 голосов
/ 03 мая 2020

Я хочу использовать Кафку в качестве хранилища / потока событий для заказов, вот несколько атрибутов:

  • У меня есть два региона для обслуживания: Лондон и Нью-Йорк
  • Заказ, начатый в Лондоне, весьма вероятно, что дальнейшие события (обновления) будут поступать из Лондона, однако нам необходимо поддерживать межрегиональные операции чтения / записи (т. Е. Для события, начатого в Лондоне, записи могут поступать из Нью-Йорка)
  • Бизнес выиграет от меньшего времени ожидания, поэтому количество обращений в Лондон в Нью-Йорк или наоборот должно быть сведено к минимуму
  • Заказ имеет стиль жизни 24 часа, его можно архивировать из журнала событий на этом Точка, так как она нам больше не нужна.
  • Нужна устойчивость, если завод в Лондоне Kafka выйдет из строя, я смогу переключиться на Нью-Йорк и наоборот.
  • Порядок событий должен быть последовательным во всех регионах
  • Номера заказов указываются только в 1000 с за 24 ч.

Поэтому я пытаюсь правильно настроить Kafka, чтобы уменьшить количество ошибок. кроме работы, которую я должен сделать вне Kafka, поэтому мои проблемы / вопросы:

  1. Исходный регион кажется естественным ключом разделения, но, насколько я вижу, я ничего не получаю от разделение топи c ... Я мог бы просто иметь 2 темы, одну для Лондона, одну для Нью-Йорка? Правильно ли я?
  2. Насколько я понимаю, чтобы иметь возможность переключения при сбое, мне нужно настроить два отдельных кластера и использовать зеркало, чтобы синхронизировать c две темы по регионам. Но это означало бы, что мне нужно будет встроить logi c в свои приложения, чтобы они публиковали sh событие в правильном кластере - я правильно понимаю? Можно ли как-то настроить Kafka, чтобы мне не нужно было это делать, и я просто подключаюсь к локальному кластеру и читаю / записываю в него, позволяя кластеру позаботиться о том, куда он направит события на

1 Ответ

0 голосов
/ 03 мая 2020

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

Относительно задержки: если у вас нет требований к подсекундам, я бы Настоятельно рекомендуем использовать один кластер вместо двух. Задержка между восточным побережьем и Великобританией не должна быть слишком плохой. Проще говоря, Kafka очень устойчив и может справиться с большинством неисправностей в пределах одного кластера (например, умирающий брокер) Начните с одного кластера в одном месте, вы все равно сможете добавить второй и перенести свои данные с помощью mirror maker или выделенного сервиса.

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

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