【消息队列】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

相关推荐
打工的小王18 小时前
docker(三)具体项目的部署
运维·docker·容器
编程彩机20 小时前
互联网大厂Java面试:从Spring Security到微服务架构场景解析
kafka·spring security·微服务架构·jwt·java面试·分布式追踪
一叶星殇20 小时前
.NET WebAPI:用 Nginx 还是 IIS 更好
运维·nginx·.net
LEEE@FPGA21 小时前
zynq 是不是有了设备树,再linux中不需要编写驱动也能控制
linux·运维·单片机
Trank-Lw1 天前
Docker Devcontainer 管理命令
运维·docker·容器
RisunJan1 天前
Linux命令-less(分页查看器)
linux·运维
赛希咨询1 天前
人工智能自动化如何提高研究生产力
运维·人工智能·自动化
梁正雄1 天前
linux服务-MariaDB 10.6 Galera Cluster+garbd
linux·运维·mariadb
heartbeat..1 天前
Redis 哨兵模式:原理、配置与故障排查全解析
java·运维·数据库·redis
乐迪信息1 天前
乐迪信息:AI算法盒子+船舶AI逆行检测算法,船舶违规实时抓拍
大数据·运维·人工智能·物联网·安全