我想使用 Docker 在我的本地计算机 (Windows 7) 上设置 kafka 单一代理。本质上,我使用了此链接中列出的步骤:
然后,我可以通过运行以下命令来创建主题:
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/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“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(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
我正在尝试从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
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
大家好!我想知道Ruby中未使用语法ClassName.method_name调用的方法是如何工作的。我头脑中的一些是puts、print、gets、chomp。可以在不使用点运算符的情况下调用这些方法。为什么是这样?他们来自哪里?我怎样才能看到这些方法的完整列表? 最佳答案 Kernel中的所有方法都可用于Object类的所有对象或从Object派生的任何类。您可以使用Kernel.instance_methods列出它们。 关于没有类的Ruby方法?,我们在StackOverflow
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle