У нас есть система (например, система A), которая получает данные временных рядов по HTTP, и эти данные сохраняются в OpenTSDB через интерфейс REST OpenTSDB. Теперь я хотел бы представить Apache Kafka в систему. Идея для меня заключалась бы в том, чтобы запустить сервер Kafka, где System A, как только получает сообщения о временных рядах, публикует это сообщение на сервере Apache Kafka.Apache Kafka для сохранения данных временных рядов
У меня может быть потребитель, который читает из темы и записывает эти данные в OpenTSDB. У меня есть несколько вопросов, с этим подходом:
В отношении к разработке архитектуры производителя и потребителя:
Могу ли я иметь отдельный клиент, где я буду писать потребителей, которые только потребляющие от темы Кафки и написать сообщения в OpenTSDB
производители будут частью системы A и будет публиковать сообщения в соответствующей теме
Что касается Кафки тем, данные временных рядов некоторых показателей, которые имеют ключ и значение и пример которого, как показано ниже:
"metric.metricType.tagName"
у меня будет сотня или даже, возможно, тысячи этих различных тэгов. Как я структурирую эту информацию и представляю ее как тему в Apache Kafka. Я не уверен, есть ли ограничение на количество тем, которые я мог бы создать.
Должен ли я иметь одну тему для имени тега? Какова сделка с разделением темы?
Что касается Apache Кафки секционирования, у меня есть следующие вопросы:
Если у меня есть тема «Тема A» и установите разделы 4 по этой теме, и если мой продюсер пишет это раздел, в котором раздел этой темы будет доступен для этого сообщения? Одно и то же сообщение доступно для каждого раздела в одной и той же теме?
Если я пишу потребителю эту секционированную тему, как это будет вести себя, я имею в виду, получит ли этот потребитель сообщение из раздела?
Если у меня есть несколько потребителей для этой секционированной темы, будут ли все эти потребители получать одни и те же сообщения? Я имею в виду, если в теме есть 4 раздела (TP1, TP2, TP3, TP4), и у меня есть 4 группы потребителей (CG1, CG2, CG3, CG4), где в каждой группе потребителей у меня есть один потребитель, который читает сообщения из соответствующий раздел раздела (C1 читается из TP1, C2 читается с TP2 и т. д.). Будут ли у меня появляться повторяющиеся сообщения, если все мои группы потребителей записывают сообщения, которые он получает в одну и ту же базу данных?
1. Наверное, вы имели в виду автономное клиентское приложение? – sparkr
Клиент в потребительском клиенте «Kafka», но в целом он выглядит как маленький сервер, поскольку это долго работающая задача, которая что-то делает. Mine также имеет интерфейс REST, который можно использовать для получения некоторых показателей потребления, вытащить одно сообщение при определенном смещении и управлять некоторыми параметрами конфигурации (которые могут быть динамически изменены). –
Я не совсем понял ваше утверждение «Нет, разделы всегда содержат примерно равное подмножество их темы ...». Не могли бы вы рассказать об этом, пожалуйста? – sparkr