一个kafka创建topic失败的问题

在新机房部署Kafka 1.0.0时遇到创建topic失败,错误提示“TRACE”协议未被识别。解决方案是修改配置文件,将协议从”TRACE“改为”INFO“,重启Kafka后问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在新机房部署kafka的时候,趁机使用了最新的1.0.0版本的kafka。但是安装部署完成后,在创建topic的时候,居然出错了:

$ bin/kafka-topics.sh --create --zookeeper 192.168.1.1:2685/kafka --replication-factor 2 --partitions 3 --topic innertest
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/svckafka/kafka/libs/KafkaYYMetricsReporter.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/svckafka/kafka/libs/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Error while executing topic command : Failed to parse the broker info from zookeeper: {"jmx_port":-1,"timestamp":"1511324917564","endpoints":["PLAINTEXT://192.168.1.1:9099","TRACE://192.168.1.1:9098"],"host":"192.168.1.1","version":3,"port":9099}
[2017-11-22 12:28:51,870] ERROR kafka.common.KafkaException: Failed to parse the broker info from zookeeper: {"jmx_port":-1,"timestamp":"1511324917564","endpoints":["PLAINTEXT://192.168.1.1:9099","TRACE://192.168.1.1:9098"],"host":"192.168.1.1","version":3,"port":9099}
    at kafka.cluster.Broker$.createBroker(Broker.scala:126)
    at kafka.utils.ZkUtils.getBrokerInfo(ZkUtils.scala:889)
    at kafka.utils.ZkUtils$$anonfun$getAllBrokersInCluster$2.apply(ZkUtils.scala:327)
	at kafka.utils.ZkUtils$$anonfun$getAllBrokersInCluster$2.apply(ZkUtils.scala:327)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at kafka.utils.ZkUtils.getAllBrokersInCluster(ZkUtils.scala:327)
    at kafka.admin.AdminUtils$.getBrokerMetadatas(AdminUtils.scala:439)
    at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:461)
    at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:110)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:63)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)
Caused by: java.lang.IllegalArgumentException: No security protocol defined for listener TRACE
    at kafka.cluster.EndPoint$$anonfun$securityProtocol$1$1.apply(EndPoint.scala:48)
	at kafka.cluster.EndPoint$$anonfun$securityProtocol$1$1.apply(EndPoint.scala:48)
    at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
    at scala.collection.AbstractMap.getOrElse(Map.scala:59)
    at kafka.cluster.EndPoint$.securityProtocol$1(EndPoint.scala:47)
    at kafka.cluster.EndPoint$.createEndPoint(EndPoint.scala:56)
    at kafka.cluster.Broker$$anonfun$2.apply(Broker.scala:116)
	at kafka.cluster.Broker$$anonfun$2.apply(Broker.scala:116)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.Iterator$class.foreach(Iterator.scala:893)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at kafka.cluster.Broker$.createBroker(Broker.scala:116)
    ... 15 more
 (kafka.admin.TopicCommand$)

关键错误应该是”TRACE”协议不被识别:

Caused by: java.lang.IllegalArgumentException: No security protocol defined for listener TRACE

于是,试着在配置文件中,把

advertised.listeners=PLAINTEXT://192.168.1.1:9099, TRACE://192.168.1.1:9098

改成

advertised.listeners=PLAINTEXT://192.168.1.1:9099

然后重启kafka,再尝试创建topic,就好了。

总结:

在1.0.0版本的kafka中,不再支持”TRACE”协议,这个在之前的版本中应该只是测试用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值