kafka于centos怎样合理配置
导读:一、基础环境准备 1. 安装Java环境 Kafka依赖Java运行环境,需安装JDK 1.8及以上版本。在CentOS上可通过以下命令安装OpenJDK 8: sudo yum install java-1.8.0-openjdk-dev...
一、基础环境准备
1. 安装Java环境
Kafka依赖Java运行环境,需安装JDK 1.8及以上版本。在CentOS上可通过以下命令安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel -y
# 验证安装
java -version
2. 下载并解压Kafka
从Apache官网下载稳定版本(如3.5.2),解压至指定目录(如/opt/kafka):
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zxvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka
3. 配置环境变量
将Kafka的bin目录添加至系统PATH,方便全局调用:
echo 'export PATH=$PATH:/opt/kafka/bin' >
>
~/.bashrc
source ~/.bashrc
二、Kafka核心配置(server.properties)
Kafka的主配置文件位于/opt/kafka/config/server.properties,需调整以下关键参数:
1. Broker标识与通信
- broker.id:集群中每个Broker的唯一标识(整数),需确保集群内无重复。
broker.id=0 # 若有多个Broker,依次设置为1、2... - listeners:Broker监听的协议与地址(内网IP或域名),用于接收客户端请求。
listeners=PLAINTEXT://your_server_ip:9092 - advertised.listeners:客户端连接的地址(需能被客户端访问,如公网IP或域名),若为内网集群,可直接使用内网IP。
advertised.listeners=PLAINTEXT://your_server_ip:9092
2. 日志与存储
- log.dirs:日志存储目录(可配置多个,用逗号分隔),建议使用独立磁盘分区以提高IO性能。
log.dirs=/opt/kafka/logs,/data/kafka/logs - num.partitions:Topic的默认分区数(可根据业务并发量调整,如高并发场景设置为8或更高)。
num.partitions=8 - default.replication.factor:Topic的默认副本因子(建议设置为3,保证数据冗余)。
default.replication.factor=3
3. Zookeeper连接
- zookeeper.connect:Zookeeper集群地址(多个节点用逗号分隔),用于Broker注册与集群管理。
zookeeper.connect=localhost:2181 # 若为集群,改为zk1:2181,zk2:2181,zk3:2181
4. 高可用配置
- min.insync.replicas:写操作需确认的最小副本数(建议设置为2,保证数据可靠性,需小于
default.replication.factor)。min.insync.replicas=2 - auto.leader.rebalance.enable:自动触发Leader分区重平衡(开启后可自动恢复故障节点的Leader角色)。
auto.leader.rebalance.enable=true
三、防火墙配置
开放Kafka与Zookeeper的端口,允许客户端访问:
# 开放Kafka端口(9092)
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
# 开放Zookeeper端口(2181)
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload
四、启动与验证
1. 启动Kafka
进入Kafka目录,启动Broker(后台运行):
cd /opt/kafka
nohup bin/kafka-server-start.sh config/server.properties >
/dev/null 2>
&
1 &
2. 验证安装
- 查看Broker列表:
bin/kafka-topics.sh --list --bootstrap-server your_server_ip:9092 - 创建测试Topic:
bin/kafka-topics.sh --create --bootstrap-server your_server_ip:9092 --replication-factor 1 --partitions 1 --topic test_topic - 生产与消费消息:
# 生产者发送消息 bin/kafka-console-producer.sh --topic test_topic --bootstrap-server your_server_ip:9092 # 消费者接收消息 bin/kafka-console-consumer.sh --topic test_topic --from-beginning --bootstrap-server your_server_ip:9092
五、性能优化建议
1. 操作系统优化
- 文件描述符限制:Kafka需处理大量文件描述符,修改
/etc/security/limits.conf:* soft nofile 65536 * hard nofile 65536 - 内存映射限制:调整
/etc/sysctl.conf:
生效命令:vm.max_map_count=262144sysctl -p
2. Kafka参数优化
- 线程池调整:增加网络与IO线程数(根据CPU核心数调整):
num.network.threads=8 num.io.threads=16 - 日志刷新策略:平衡性能与数据安全性(降低刷新频率,提高吞吐量):
log.flush.interval.messages=10000 log.flush.interval.ms=1000 - 缓冲区大小:调整网络缓冲区(根据网络带宽调整):
socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400
六、安全配置(可选)
1. SASL认证
启用SASL/PLAIN认证,编辑server.properties:
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
创建JAAS配置文件kafka_server_jaas.conf:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
}
;
启动时指定JAAS文件:
export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf"
bin/kafka-server-start.sh config/server.properties
2. SSL加密
配置SSL加密传输(需生成证书),编辑server.properties:
listeners=SSL://your_server_ip:9093
ssl.keystore.location=/opt/kafka/config/kafka.keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.truststore.location=/opt/kafka/config/kafka.truststore.jks
ssl.truststore.password=password
七、监控与维护
- 日志管理:配置日志保留策略(如保留7天):
log.retention.hours=168 - 监控工具:使用Prometheus+Grafana监控Broker指标(如CPU、内存、磁盘IO、消息吞吐量),或使用Kafka自带的
kafka-topics.sh、kafka-consumer-groups.sh工具定期检查Topic状态。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: kafka于centos怎样合理配置
本文地址: https://pptw.com/jishu/744111.html
