首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kafka集群配置

kafka集群配置
EN

Stack Overflow用户
提问于 2016-05-25 12:25:08
回答 3查看 4K关注 0票数 6

我是卡夫卡的新手。我有关于kafka配置的问题。

我想使用如下所示的独立服务器,

server1:卡夫卡生产者server2:卡夫卡经纪人,卡夫卡消费者,动物园管理员

但是,我不能向broker发送消息。我收到了这个错误消息。

在控制台生产者(Server1)上,控制台标准输出错误消息`

代码语言:javascript
复制
[2016-05-24 16:41:11,823] ERROR Error when sending message to topic twitter with key: null, value: 3 bytes with error: Failed to update metadata after 60000 ms.(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

`

在kafka producer(server2)上,控制台标准输出错误消息`

代码语言:javascript
复制
[2016-05-25 10:20:01,588] DEBUG Connection with /192.168.50.142 disconnected (org.apache.kafka.common.network.Selector)
java.io.EOFException
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:83)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:71)
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:160)
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:141)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:286)
    at kafka.network.Processor.run(SocketServer.scala:413)
    at java.lang.Thread.run(Thread.java:745)

`

运行命令如下所示

server1 on kafka dir,`

代码语言:javascript
复制
./bin/zookeeper-server-start.sh config/zookeeper.properties
./bin/kafka-server-start.sh config/server.properties
./bin/kafka-console-consumer.sh --zookeeper 192.168.50.142:2181 --from-beginning --topic twitter
./bin/kafka-topics.sh --create --zookeeper 192.168.50.142:2181 --replication-factor 1 --partitions 1 --topic twitter

`

和server2 on kafka dir,`

代码语言:javascript
复制
./bin/kafka-console-producer.sh --broker-list 192.168.50.142:9092 --topic twitter

`

我的配置是,

server1(IP: 192.168.50.155):

kafka/config/producer.properties `

代码语言:javascript
复制
metadata.broker.list=192.168.50.142:9092
producer.type=sync
compression.codec=none
serializer.class=kafka.serializer.DefaultEncoder

`

server2(IP:192.168.50.142):

kafka/config/zookeeper.properties `

代码语言:javascript
复制
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0

`

kafka/config/server.properties `

代码语言:javascript
复制
broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
broker.id=0
port=9092
log.dir=/tmp/kafka-logs-1
delete.topic.enable=true

`

kafka.config/consumer.properties `

代码语言:javascript
复制
zookeeper.connect=127.0.0.1:2181
zookeeper.connection.timeout.ms=6000
group.id=test-consumer-group

`

kafka_2.11-0.9.0.0 java 1.8.0_60节点v4.4.4

我是否需要更改任何配置?请帮帮忙。

EN

回答 3

Stack Overflow用户

发布于 2016-05-25 19:33:43

您的生产者配置似乎不正确。

kafka/config/producer.properties

代码语言:javascript
复制
bootstrap.servers=192.168.50.142:9092
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
票数 1
EN

Stack Overflow用户

发布于 2018-03-06 16:40:53

在server.properties中进行以下更改:

  1. 将第二行更改为

listeners=PLAINTEXT://:9092

  • Add这一行:

advertised.listeners=PLAINTEXT://192.168.50.142:9092

这一行是必需的,因为这是代理将通告给消费者和生产者的主机名和端口。因为你在另一台机器上有一个生产者,所以需要这一行。

在终端中编写任何命令时,请使用

代码语言:javascript
复制
    <command> --zookeeper localhost:2181 <rest of it>

希望这能起作用。

票数 1
EN

Stack Overflow用户

发布于 2018-01-10 17:14:34

您需要使用适当的配置值修改主机文件,并更新/etc/ server.properties文件以将您的计算机解析为IP。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37427821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档