Apache kafka ApacheKafka用于时间序列数据持久化
我们有一个系统(比如系统a),它通过HTTP接收时间序列数据,这些数据通过OpenTSDB的REST接口被持久化到OpenTSDB中。现在我想将ApacheKafka介绍到系统中。我的想法是让Kafka服务器运行,系统a在接收到时间序列消息后,立即将该消息发布到ApacheKafka服务器 然后,我可以让一个消费者从主题中读取数据并将其写入OpenTSDB。对于这种方法,我有几个问题: 关于生产者和消费者的架构:Apache kafka ApacheKafka用于时间序列数据持久化,apache-kafka,Apache Kafka,我们有一个系统(比如系统a),它通过HTTP接收时间序列数据,这些数据通过OpenTSDB的REST接口被持久化到OpenTSDB中。现在我想将ApacheKafka介绍到系统中。我的想法是让Kafka服务器运行,系统a在接收到时间序列消息后,立即将该消息发布到ApacheKafka服务器 然后,我可以让一个消费者从主题中读取数据并将其写入OpenTSDB。对于这种方法,我有几个问题: 关于生产者和消费者的架构: 我可以有一个独立的客户端,在那里我可以编写只使用Kafka主题的消费者,并将消息写
"metric.metricType.tagName"
我将拥有数百甚至数千个不同的标记名。我如何构造这些信息并将其表示为ApacheKafka中的主题。我不确定我可以创建的主题数量是否有限制
每个标记名应该有一个主题吗?如何划分主题
关于Apache Kafka分区,我有以下问题:
标记
,则具有相同标记的所有邮件将始终转到同一分区。当您希望确保具有相同标记的消息按照放入卡夫卡(即生成)的相同顺序被消费时,这一点非常重要
同一主题中的每个分区是否都有相同的消息
不,分区总是包含其主题的大致相等的消息子集(如果默认,则使用随机散列)
如果我为这个分区主题编写一个消费者,这将如何实现
行为举止,我的意思是,这个消费者会收到来自
分割
消息将被随机消费,因为消费者线程之间没有协调。当然,这是可以理解的,因为这将导致巨大的性能损失
如果此分区主题有多个使用者,所有使用者
那些消费者得到了同样的信息
这取决于消费者群体。同一组中的所有使用者线程总共接收100%的消息(例如,4个使用者线程中的每个线程将从该主题接收25%的消息)。另一方面,如果您有两个具有不同组的消费者,那么他们每个人都会100%地使用来自该主题的消息。我想你可以由此推断出最后两个问题的答案,对吗?1。我猜你指的是一个sta