【消息队列】kafka2.0.0安装(单机)及基本命令

一、安装JDK


bash 复制代码
mkdir -p /home/winner/software	
cd  /home/winner/software/
tar -zxvf jdk-8u333-linux-x64.tar.gz
tar -zxvf kafka_2.11-2.0.0.tgz
ln  -s jdk1.8.0_333  jdk
ln  -s kafka_2.11-2.0.0  kafka

配置环境变量

cs 复制代码
vim /etc/profile
export JAVA_HOME=/home/winner/software/jdk
export JRE_HOME=/home/winner/software/jdk/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=::$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source  /etc/profile

二、配置Kafka


修改进程可以使用的最大内存映射区域数。

复制代码
#编辑配置文件 /etc/sysctl.conf  (永久生效)
vm.max_map_count=262144
编辑完文件后命令行执行 sysctl -p  立即永久生效

#命令行执行
sysctl -w vm.max_map_count=262144 (当前会话生效)

Kafka的配置文件位于config目录下,主要涉及以下几个文件:

  • server.properties:Kafka broker的配置文件。
  • zookeeper.properties:Zookeeper的配置文件。

2.1 配置Zookeeper


Kafka依赖于Zookeeper进行元数据管理。在单机环境下,Zookeeper可以作为Kafka的一部分运行。编辑zookeeper.properties文件,确保以下配置项正确:

复制代码
dataDir=/home/winner/software/kafka/zookeeper
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0

配置 kafka环境变量

复制代码
vim /etc/profile
export KAFKA_HOME=/home/winner/software/kafka/
export PATH=$PATH:$KAFKA_HOME/bin

-- 配置生效
source /etc/profile

2.2配置Kafka Broker

编辑server.properties文件,配置Kafka broker的基本参数:

复制代码
broker.id=1
#broker对外提供的服务入口地址。
listeners=PLAINTEXT://0.0.0.0:9092
#代理将向生产者和消费者发布的主机名和端口
advertised.listeners=PLAINTEXT://192.168.2.223:9092
#使用的认证协议
security.inter.broker.protocol=PLAINTEXT
#SASL机制
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
#完成身份验证的类
#authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
#如果没有找到ACL(访问控制列表)配置,则允许任何操作。
allow.everyone.if.no.acl.found=false
#需要开启设置超级管理员,设置visitor用户为超级管理员
#super.users=User:winner
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/home/winner/software/kafka/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0

2.3 启动Zookeeper与Kafka

在单机环境下,Zookeeper和Kafka可以分别启动。首先启动Zookeeper:

复制代码
zookeeper-server-start.sh -daemon config/zookeeper.properties

然后启动Kafka broker:

复制代码
kafka-server-start.sh  -daemon config/server.properties

如果一切正常,你将看到Kafka broker成功启动的日志信息。

成功连接。

2.4 配置密码


在Kafka broker的配置目录中添加一个JAAS文件kafka_server_jaas.conf

复制代码
[root@winner install]# cat /home/winner/software/kafka/config/kafka_server_jaas.conf
KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin" 
    password="admin123"
    user_admin="admin123"
    user_test="test123";
};

此配置定义了两个用户(admin和test)。KafkaServer中的username、password配置的用户和密码,是用来broker和broker连接认证。在本例中,admin是代理broker间通信的用户。user_userName 配置为连接到broker的所有用户定义密码,broker使用这些验证所有客户端连接,包括来自其他broker的连接。

在server.properties中配置SASL端口和SASL机制,如下:

  • **security.inter.broker.protocol:**用于broker之间通信的安全协议。有效值为:PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL

  • sasl.mechanism.inter.broker.protocol: 用于broker间通信的SASL机制,默认值为GSSAPI

  • **sasl.enabled.mechanisms:**Kafka服务器中启用的SASL机制列表。该列表可以包含安全提供程序可用的任何机制。默认情况下仅启用GSSAPI。

    broker.id=1
    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    #advertised.listeners=PLAINTEXT://192.168.2.223:9092
    advertised.listeners=SASL_PLAINTEXT://192.168.2.223:9092
    #使用的认证协议
    security.inter.broker.protocol=SASL_PLAINTEXT
    #SASL机制
    sasl.enabled.mechanisms=PLAIN
    sasl.mechanism.inter.broker.protocol=PLAIN
    #完成身份验证的类
    #authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    #如果没有找到ACL(访问控制列表)配置,则允许任何操作。
    allow.everyone.if.no.acl.found=false
    #需要开启设置超级管理员,设置visitor用户为超级管理员
    #super.users=User:winner
    num.network.threads=8
    num.io.threads=8
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    log.dirs=/home/winner/software/kafka/kafka-logs
    num.partitions=1
    num.recovery.threads.per.data.dir=1
    offsets.topic.replication.factor=1
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    log.retention.hours=168
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    zookeeper.connect=localhost:2181
    zookeeper.connection.timeout.ms=18000
    group.initial.rebalance.delay.ms=0

修改kafka启动脚本

vim bin/kafka-server-start.sh,在文件最上面添加变量

复制代码
export KAFKA_OPTS="-Djava.security.auth.login.config=/home/winner/software/kafka/config/kafka_server_jaas.conf"

启动生产者

复制代码
kafka-console-producer.sh --broker-list 192.168.2.223:9092 --topic aio --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN

启动消费者

复制代码
kafka-console-consumer.sh --bootstrap-server 192.168.2.223:9092 --topic aio --from-beginning --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN

查看创建的 topic


三、服务注册


3.1Zookeeper 开机自启服务

cs 复制代码
vim /etc/systemd/system/zookeeper.service

[Unit]
Description=Zookeeper Service
After=network.target

[Service]
Type=simple
Environment="JAVA_HOME=/home/winner/software/jdk"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/winner/software/jdk/bin"
User=root
Group=root
ExecStart=/home/winner/software/kafka/bin/zookeeper-server-start.sh  /home/winner/software/kafka/config/zookeeper.properties
ExecStop=/home/winner/software/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

3.2Kafka 开机自启服务

复制代码
vim /etc/systemd/system/kafka.service


[Unit]
Description=Apache Kafka server broker
After=network.target  zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/home/winner/software/jdk"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/winner/software/jdk/bin"
User=root
Group=root
ExecStart=/home/winner/software/kafka/bin/kafka-server-start.sh /home/winner/software/kafka/config/server.properties
ExecStop=/home/winner/software/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动

复制代码
systemctl daemon-reload
systemctl start zookeeper
systemctl start kafka

systemctl enable  zookeeper.service
systemctl enable  kafka.service

systemctl status zookeeper
systemctl status kafka

安装: https://www.cnblogs.com/maiblogs/p/15367963.html

相关推荐
wewowilling6 小时前
认识微服务
java·运维·微服务·springcloud
玖石书6 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
weifont8 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
拂拉氏8 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Mikko79 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
光依旧9 小时前
发版就掉请求?Spring Boot优雅停机的四步
运维·spring boot·nginx·高可用·优雅停机·mcp server
yichengerp10 小时前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造
天国梦10 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python
nvd1111 小时前
深入剖析:GCP Pub/Sub 与 Apache Kafka 对消息处理延迟与消费者卡死的处理机制异同
分布式·kafka·apache
信可维11 小时前
自动化操作多平台账号:登录态、双会话与 User Data 的 3 个坑
运维·自动化