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

用户控制台中的Bootstrap-服务器与zookeeper参数

晏炳
2023-03-14

我读过消费控制台中的线程boostrap-server vs zookeeper,但我不清楚这一点。

我的疑问是,假设我们有zookeeper在localhost:2181上运行,三个代理服务器在localhost:9092、localhost:9093、localhost:9094上运行,我们有一个主题my_topic与分区3和replication1,主题由代理共享,因为它有三个分区。

在Apache-Kafka的新版本中,当我们运行consumer console时,我们需要传递--bootstrap-server localhost:9092,这是代理地址之一,但在早期版本中,我们传递的是zookeeper地址。

所以当我们运行consumer从主题my_topic中获取消息时,我们传递的参数--bootstrap-server localhost:9092只是代理地址之一,所以我的问题是,我们是否限制consumer只能从该代理获取消息,如果是的话,那么就让我们说明该代理是否已经关闭,那么consumer将如何从该主题读取消息。我不明白它是怎么工作的,请谁给我弄清楚。

运行使用者的旧版本命令(<1.0)
bin/kafka-console-consumer.sh--zookeeper localhost:2181--from-beginent-topic my_topic
运行使用者的新版本命令(>=1.0)
bin/kafka-console-consumer.sh--bootstrap-server localhost:9092--from-beginent-topic my_topic

共有1个答案

令狐阳秋
2023-03-14

在以前的Kafka版本(0.9.0之前)中,使用者需要连接到Zookeeper以提交偏移量和获取主题元数据。从0.9.0开始,consumer offeset保存在Kafka主题(__consumer_offset)中,不再需要连接到Zookeeper。

您在--bootstrap-server参数中指定的内容正是...说。这是一个bootstrap servers列表:它意味着使用者连接到您指定的代理,并请求关于它想要使用的主题的元数据。它不仅限于使用--bootstrap-server参数中列出的代理的消息。假设您指定“kafka1:9092”作为引导服务器(在一个集群中,如您所说,您有3个代理)。连接之后,使用者发送一个元数据请求,以获取关于“my_topic”的信息。“kafka1”服务器可以回复“我不是my_topic partition 0的leader,这里是broker,它是那个kafka2的leader”。此时,使用者连接到“kafka2”代理以开始获取消息。

 类似资料:
  • 我正在尝试用3个代理&Zookeeper来测试运行一个单独的Kafka节点。我希望使用控制台工具进行测试。我是这样管理制作人的: 然后我以这样的方式运行消费者: 我可以在生产者中输入消息,并在消费者中看到它们,这是预期的。但是,当我使用bootstrap-server运行消费者的更新版本时,我什么也得不到。例如: 当我有一个代理在端口9092上运行时,这工作得很好,所以我彻底搞糊涂了。有没有办法让

  • 问题内容: 我已经阅读了几篇有关angularjs实体正确用法的文章:服务,工厂,控制器和指令。 我特别关心的是控制器和服务的比较。但是,没有一个帖子告诉我什么是控制器可以执行服务不能执行的操作,反之亦然。 可以列出它吗?或者仅仅是在angular的用法上规范? 问题答案: 控制器 通常用于绑定视图。控制器管理视图的生命周期,应将其视为视图控制器。将为视图的每个实例创建一个新的控制器,这意味着,如

  • 前台用户控制器和前台控制器类似,只是它需要用户登录后才能访问,要渲染的视图也在前台模板目录(public/themes/)里,要继承cmf\controller\UserBaseController 如: <?php namespace app\portal\controller; use cmf\controller\UserBaseController; class UserControl

  • 前台用户控制器和前台控制器类似,只是它需要用户登录后才能访问,要渲染的视图也在前台模板目录(public/themes/)里,要继承cmf\controller\UserBaseController 如: <?php namespace app\demo\controller; use cmf\controller\UserBaseController; class UserControlle

  • 问题内容: 我有一个在独立模式下运行的Flask服务器(使用)。但是,我不需要控制台中的任何消息,例如 如何禁用详细模式? 问题答案: 你可以将Werkzeug记录器的设置级别设置为ERROR,在这种情况下,仅记录错误:

  • 服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱。策展人(一个用于Zookeeper的java库)通过服务发现扩展提供服务发现服务。Spring Cloud Zookeeper利用此扩展功能进行服务注册和发现。 如何激活 包括对org.springframework.cloud:spring-cloud-starter-zookeeper-dis