jjzjj

windows - 没有 docker-compose 的 Docker 上的 Kafka?

coder 2024-06-14 原文

我想使用 Docker 在我的本地计算机 (Windows 7) 上设置 kafka 单一代理。本质上,我使用了此链接中列出的步骤:

Apache Kafka on Docker

然后,我可以通过运行以下命令来创建主题:

kafka-topics.bat --create --zookeeper 192.168.59.103:32769 --replica 1 --partition 1 --topic test 

这创建了主题,因为当我做 list-topics 时,它显示正确。

接下来,我尝试使用 kafka-console-producer.bat 文件发布消息,当我这样做并在输入消息后按回车键时,出现以下异常:

[2015-08-02 13:48:46,075] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,084] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,085] ERROR Failed to collate messages by topic, partition d
ue to: Failed to fetch topic metadata for topic: test (kafka.producer.async.Defa
ultEventHandler)
[2015-08-02 13:48:46,195] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,205] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,206] ERROR Failed to collate messages by topic, partition d
ue to: Failed to fetch topic metadata for topic: test (kafka.producer.async.Defa
ultEventHandler)
[2015-08-02 13:48:46,315] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,325] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,325] ERROR Failed to collate messages by topic, partition d
ue to: Failed to fetch topic metadata for topic: test (kafka.producer.async.Defa
ultEventHandler)
[2015-08-02 13:48:46,434] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,442] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,443] ERROR Failed to collate messages by topic, partition d
ue to: Failed to fetch topic metadata for topic: test (kafka.producer.async.Defa
ultEventHandler)
[2015-08-02 13:48:46,548] WARN Error while fetching metadata [{TopicMetadata for
 topic test ->
No partition metadata for topic test due to kafka.common.LeaderNotAvailableExcep
tion}] for topic [test]: class kafka.common.LeaderNotAvailableException  (kafka.
producer.BrokerPartitionInfo)
[2015-08-02 13:48:46,549] ERROR Failed to send requests for topics test with cor
relation ids in [9,17] (kafka.producer.async.DefaultEventHandler)
[2015-08-02 13:48:46,549] ERROR Error in handling batch of 1 events (kafka.produ
cer.async.ProducerSendThread)
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries
.
        at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.s
cala:90)
        at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThrea
d.scala:105)
        at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.appl
y(ProducerSendThread.scala:88)
        at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.appl
y(ProducerSendThread.scala:68)
        at scala.collection.immutable.Stream.foreach(Stream.scala:547)
        at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThr
ead.scala:67)
        at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:
45)

当我使用

启动 kafka 时,这个异常对我来说似乎很奇怪
docker run --name kafka -e HOST_IP=localhost -e KAFKA_ADVERTISED_HOST_NAME=192.168.59.103 -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092 --link zookeeper:zk -t wurstmeister/kafka

终端中显示的最后一行是:

[2015-08-02 17:20:44,037] INFO Registered broker 1 at path /brokers/ids/1 with a
ddress 192.168.59.103:9092. (kafka.utils.ZkUtils$)
[2015-08-02 17:20:44,055] INFO [Kafka Server 1], started (kafka.server.KafkaServ
er)
[2015-08-02 17:20:44,108] INFO New leader is 1 (kafka.server.ZookeeperLeaderElec
tor$LeaderChangeListener)

所以,我猜领导已经被分配了。最后,从消费者方面来看,当我运行 bat 文件时,会抛出以下内容:

[2015-08-02 13:41:47,005] WARN Fetching topic metadata with correlation id 0 for
 topics [Set(test)] from broker [id:1,host:192.168.59.103,port:9092] failed (kaf
ka.client.ClientUtils$)
java.nio.channels.ClosedChannelException
        at kafka.network.BlockingChannel.send(BlockingChannel.scala:100)
        at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73)
        at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncP
roducer.scala:72)
        at kafka.producer.SyncProducer.send(SyncProducer.scala:113)
        at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:58)
        at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:93)
        at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(Consu
merFetcherManager.scala:66)
        at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)

那么,我在这里做错了什么?我总是需要 compose 来运行 kafka 吗?我的理解是,如果我想运行多个代理,则需要组合,而这不是我正在做的事情。在我的情况下,链接 2 个容器还不够吗?

最佳答案

我注意到您传递给 kafka-topcs.bat 的 ZooKeeper 主机和端口不是默认的。也许这就是问题的根源。您是否为 Zookeeper 启动了一个单独的 Docker 容器?

关于windows - 没有 docker-compose 的 Docker 上的 Kafka?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31774885/

有关windows - 没有 docker-compose 的 Docker 上的 Kafka?的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 难道Lua没有和Ruby的method_missing相媲美的东西吗? - 2

    我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  5. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  6. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  7. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  8. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  9. 没有类的 Ruby 方法? - 2

    大家好!我想知道Ruby中未使用语法ClassName.method_name调用的方法是如何工作的。我头脑中的一些是puts、print、gets、chomp。可以在不使用点运算符的情况下调用这些方法。为什么是这样?他们来自哪里?我怎样才能看到这些方法的完整列表? 最佳答案 Kernel中的所有方法都可用于Object类的所有对象或从Object派生的任何类。您可以使用Kernel.instance_methods列出它们。 关于没有类的Ruby方法?,我们在StackOverflow

  10. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

随机推荐