Apache kafka:经纪人领导者-1(通过Cygnus从Orion收到的主题)

时间:2016-03-02 13:18:37

标签: apache-kafka fiware-orion fiware-cygnus

我正在使用Apache Kafka并通过Cygnus(Fiware Labs)从Orion Context Broker接收主题

我正在收到10个主题,我可以看到8个主题的消费者控制台中的数据。

但对于其他2个主题,我看不到任何数据到达。并且没有错误代码(消费者只是空的)。如果我尝试通过生产者控制台向主题添加测试行,我会收到此错误:

ERROR Error when sending message to topic sensors_presence2_sensors with key: null, value: 4 bytes with error: Batch Expired (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

所以我使用了describe命令,我得到了这个:

Topic:sensors_presence2_sensors PartitionCount:1    ReplicationFactor:1 Configs:
Topic: sensors_presence2_sensors    Partition: 0    Leader: -1  Replicas: 2 Isr: 

我刚刚开始使用Kafka,所以目前我有1个经纪人(0)而没有分区。但为什么我的领导者-1?这个经纪人甚至不存在。我怎么能改变呢?我没有为我的主题选择配置,他们使用OrionKafkaSink自动从Cygnus(Orion Context Broker)到达。

一个运作良好的8个主题之一的例子:

Topic:sensors_presence1_sensors PartitionCount:1    ReplicationFactor:1 Configs:
Topic:sensors_presence1_sensors Partition: 0    Leader: 0   Replicas: 0 Isr: 0

由于

编辑:在Cygnus日志中,它显示数据已正确发送到kafka:

time=2016-03-02T11:07:09.504UTC | lvl=INFO | trans=1456915468-194-0000000039 | srv=egmmqtt | subsrv=egmmqttpath | function=persistAggregation | comp=Cygnus | msg=com.telefonica.iot.cygnus.sinks.OrionKafkaSink[279] : [kafka-sink] Persisting data at OrionKafkaSink. Topic (sensors_presence2_sensors), Data (...

1 个答案:

答案 0 :(得分:0)

describe命令的结果显示Replicas:2和Isr :(为空),这意味着在创建该主题时,id为2的代理处于活动状态,并且同一代理(id = 2)现在不活动。因为Isr(In sync replicas)显示为空。

当你只有一个节点(broker-id = 0)kafka集群时,没有机会获得Replicas:2。使经纪人2起来,一切都会顺利进行。

希望这有帮助!