在nodejs中创建主题时,为kafka主题的分区指定引线

qyuhtwio  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(640)

我有一个kafka代理,正在使用kafka节点在nodejs中实现kafka。我想用3个分区创建一个主题。执行此操作时,出现的问题是,只有第一个分区得到了leader assign,而其他两个分区没有得到leader。我要为所有分区指定引线。谁能告诉我怎么做?提前谢谢。

  1. var client = new kafka.KafkaClient();
  2. var topic = 't-26';
  3. var topicsToCreate = [
  4. {
  5. topic: topic,
  6. partitions: 3,
  7. Leader: 0,
  8. replicationFactor: 1,
  9. replicaAssignment: [
  10. {
  11. partition: 0,
  12. replicas: [0]
  13. },
  14. {
  15. partition: 1,
  16. replicas: [1]
  17. },
  18. {
  19. partition: 2,
  20. replicas: [2]
  21. }
  22. ]
  23. },
  24. ];
  25. client.createTopics(topicsToCreate, (error, result) => {
  26. console.log(result);
  27. });

主题创建如下-

  1. Topic: t-26 PartitionCount: 3 ReplicationFactor: 1 Configs:
  2. Topic: t-26 Partition: 0 Leader: 0 Replicas: 0 Isr: 0
  3. Topic: t-26 Partition: 1 Leader: none Replicas: 1 Isr:
  4. Topic: t-26 Partition: 2 Leader: none Replicas: 2 Isr:
33qvvth1

33qvvth11#

因为@mike,我得到了一个提示并解决了这个问题。我做了以下事情-
删除 leader=0 并将所有副本设置为0 replicas: [0]

8xiog9wr

8xiog9wr2#

您正在“全局”定义要在id为的代理上的领导者 0 但是你想要分区 1 以及 2 位于其他经纪商。正如您定义的复制是一个,这是自相矛盾的。拆下关于 Leader 它应该自动在你想要的代理上创建分区。

相关问题