当前位置: 首页 > 知识库问答 >
问题:

运行动物园管理员与多个分区Kafka-Java

翟单弓
2023-03-14

我正在尝试使用Java API运行zookeeper,以便能够使用多个分区启动一个主题。我相信这个答案会奏效。但是,当我尝试运行此代码时,会出现以下错误:

无法连接到动物园管理员服务器localhost:2181超时8000毫秒

在这台机器上,我没有运行zookeeper服务器。但我想在Java中启动一个实例(目前我可以使用ZooKeeperServerMain()类来完成)。因此,也许我也需要这样做,但要以某种方式将其与第一个答案结合起来,其中包含向主题添加多个分区的可能性。

无论如何,我可以使用这个答案启动zookeeper,但这只会为一个主题创建一个分区,这并不是我想要的。

本质上,我想启动Zookeeper(我可以使用第二个链接),在本地启动Kafka(我也可以这样做),启动一个生产者,它生成一个主题,但有三个不同的分区,还有三个不同的消费者,它们将读取消息,每个分区一个(如果我正确理解Kafka,如果启动了三个消费者,那么三个分区将被等分)。所有这些都是使用Java API完成的(我没有运行Kafka脚本或任何东西)。然而,我很难创建一个有三个分区的主题,这是我的问题。

共有2个答案

叶允晨
2023-03-14

接下来,您不应该直接与zookeeper对话来创建或管理Kafka中的主题。您应该使用Kafka 0.11中引入的新AdminClient API。

https://kafka.apache.org/0110/javadoc/index.html?org/apache/kafka/clients/admin/AdminClient.html

满勇军
2023-03-14

代理的num.partitions配置可用于强制自动创建的主题(由生产者或消费者创建)的分区数量。为了使此配置生效,需要首先删除已经创建的主题。只有自动创建的主题(在此配置更改后)才会受到影响。

 类似资料:
  • 分布式 Apache HBase 安装依赖于正在运行的 ZooKeeper 集群。所有参与节点和客户端都需要能够访问正在运行的 ZooKeeper 集合。 Apache HBase 默认为您管理 ZooKeeper“集群”。它将启动和停止 ZooKeeper 集合作为 HBase 启动/停止过程的一部分。您还可以独立于 HBase 管理 ZooKeeper 集合,只需将 HBase 指向它应该使用

  • 假设我有 3 台 Kafka 服务器。服务器 1 zoopkeeper1 服务器 2 zoopkeeper2 服务器 3 zoopkeeper3 在集群配置中,zoopkeepers 会发生什么?它们是为每个服务器单独维护的,还是会在群集配置中同步其数据?

  • 在Zookeeper和代理身份验证上启用SASL时,我面临以下错误。 以下配置在JAAS文件中给出,该文件作为KAFKA_OPTS传递,将其作为JVM参数:- Kafka经纪人的服务器。属性设置了以下额外字段:- Zookeeper属性如下所示:

  • 我是Kafka的新手,动物园管理员和Storm。我我们的环境,我们有一个Kafka代理连接到多个动物园管理员。让生产者将消息发送到特定主题并在一个代理上将分区到多个动物园管理员与多个代理分配给多个动物园管理员相比是否有优势?

  • 我必须采用4.3.1单solr索引并将其迁移到solrcloud 5.2.1 新的5.2.1体系结构是2个碎片,每个碎片有1个主碎片和1个从碎片(副本)。我的步骤是: 设置新的单分片solrcloud 5.2.1 我也有配置在一个单一的ZooKeeper(我知道1 ZK不推荐)。 一切正常,碎片正在运行,副本包含数据,我可以从新的solrcloud 5.2.1 2碎片中查询数据。 当我添加新文档时

  • 如果我部署war,我将得到以下异常: 原因:org.apache.camel.resolveEndpointFailedException:无法解析endpoint:kafka://localhost:9092?serializerClass=kafka.serializer.stringencoder&topic=checking&zookeePerhost=localhost&zookeePe