kafka配置

本文详细解析了Kafka配置文件中的关键参数,如listeners和advertised.listeners的作用及相互关系,指导如何配置Kafka监听所有网络接口。同时,介绍了如何在同一台机器上搭建伪分布式Kafka集群,包括创建配置文件、修改必要参数以及启动多broker实例的过程。

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

kafka_1.1.1 配置注意事项

  1. kafka broker默认配置文件似乎使kafka只监听loopback接口的端口,为了使用kafka监听所有网络接口的对应端口,需要修改默认配置文件,配置文件中关于socket相关的选项有两个,listenersadvertised.listeners,每个选项作用及相互关系需理解。
  ############################# Socket Server Settings #############################
 
 25 # The address the socket server listens on. It will get the value returned from
 26 # java.net.InetAddress.getCanonicalHostName() if not configured.
 27 #   FORMAT:
 28 #     listeners = listener_name://host_name:port
 29 #   EXAMPLE:
 30 #     listeners = PLAINTEXT://your.host.name:9092
 31 #listeners=PLAINTEXT://:9092
 32
 33 # Hostname and port the broker will advertise to producers and consumers. If not set,
 34 # it uses the value for "listeners" if configured.  Otherwise, it will use the value
 35 # returned from java.net.InetAddress.getCanonicalHostName().
 36 #advertised.listeners=PLAINTEXT://your.host.name:9092
 37
 38 # Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details
 39 #listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
 40
 41 # The number of threads that the server uses for receiving requests from the network and sending responses to the network
 42 num.network.threads=3
 43
 44 # The number of threads that the server uses for processing requests, which may include disk I/O
 45 num.io.threads=8
 46
 47 # The send buffer (SO_SNDBUF) used by the socket server
 48 socket.send.buffer.bytes=102400
 49
 50 # The receive buffer (SO_RCVBUF) used by the socket server
 51 socket.receive.buffer.bytes=102400
 52
 53 # The maximum size of a request that the socket server will accept (protection against OOM)
 54 socket.request.max.bytes=104857600

在同一台机器上启动多个broker实例(伪分布式),应该为每个broker实例分配一个配置文件,可使用默认文件副本,根据kafka quick start教程,当中某些项必须修改。包括broker.idlistenerslog.dirs等。

kafka自带java客户端常用命令

1.启动服务器
#启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
#启动Kafka
bin/kafka-server-start.sh config/server.properties

2.创建主题
#创建
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
#查看所有主题
bin/kafka-topics.sh --list --zookeeper localhost:2181

3.发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

4.启动消费者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

5.设置多broker的Kafka集群
#为每个broker创建配置文件
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
#编辑这些配置文件
config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1

config/server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-logs-2
#启动这两个节点
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
#创建一个新主题,副本为3
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

#停止进程节点
ps aux | grep server-1.properties
kill -9 xxxx

gwet curl ??

ps aux | grep server-1.properties

要检查和验证 Kafka配置设置,可以通过多种方式进行,包括直接检查配置文件、验证服务启动状态、以及通过客户端连接测试。以下是详细步骤: ### 验证 Kafka 配置文件 Kafka 的主要配置文件是 `server.properties`,通常位于 `config/` 目录下。需要检查的关键配置包括: - `broker.id`:确保每个 broker 的 ID 唯一。 - `listeners`:检查监听地址和端口是否正确配置,例如 `PLAINTEXT://:9092`。 - `log.dirs`:确认日志存储路径是否正确且具有写入权限。 - `zookeeper.connect`:验证是否正确指向 Zookeeper 服务地址。 - `num.partitions`:确认默认分区数量是否符合预期需求。 对于启用 SASL/PLAIN 认证的情况,需要检查 `sasl.enabled.mechanisms` 和 `sasl.mechanism.inter.broker.protocol` 配置项是否正确设置为 `PLAIN` [^1]。 ### 验证 Kafka 服务启动状态 在 Kafka 服务器上执行以下命令来启动 Kafka: ```bash bin/kafka-server-start.sh config/server.properties & ``` 启动后,可以通过以下命令检查 Kafka 进程是否运行: ```bash jps -ml ``` 如果 Kafka 成功启动,应该能看到 `Kafka` 进程 [^3]。 ### 验证端口监听情况 使用以下命令检查 Kafka 是否在预期端口上监听: ```bash netstat -tuln | grep 9092 ``` 如果 Kafka 正确配置并运行,应该能看到类似 `tcp6 0 0 :::9092 :::* LISTEN` 的输出 [^3]。 ### 验证 SASL/PLAIN 认证配置 创建一个 `kafka_client_jaas.conf` 文件,内容如下: ```conf KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="password" user_user="password"; }; ``` 然后设置 JVM 参数以使用该 JAAS 配置文件: ```bash export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_client_jaas.conf" ``` 使用 Kafka 自带的生产者和消费者脚本进行测试: ```bash bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning ``` 如果能够成功发送和接收消息,则表示 SASL/PLAIN 认证配置成功 [^1]。 ### 验证 SSL 配置 为验证 SSL 配置,首先需要确保 Kafka配置文件中包含以下设置: - `ssl.keystore.location=/path/to/keystore.jks` - `ssl.keystore.password=keystore_password` - `ssl.key.password=key_password` - `ssl.truststore.location=/path/to/truststore.jks` - `ssl.truststore.password=truststore_password` - `ssl.client.auth=required` 使用带有 SSL 配置的客户端进行连接测试,确保能够成功建立加密连接 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值