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

相关推荐
云和恩墨7 小时前
表空间、巡检、建库:DBA最熟悉的3个场景,正在被zCloud开放运维中心重新定义
运维·数据库·表空间·dba·巡检·建库
学烹饪的小胡桃8 小时前
WGCAT工单系统 v1.2.7 更新说明
linux·运维·服务器·网络·工单系统
BigBigHang8 小时前
【docker】离线设备安装镜像
运维·docker·容器
学好statistics和DS8 小时前
Docker文件与本地文件,系统
运维·docker·容器
liuc03178 小时前
docker下安装SearXNG
运维·docker·容器
云飞云共享云桌面8 小时前
非标自动化工厂的设计云桌面为什么要选云飞云智能共享云桌面?
大数据·运维·服务器·网络·自动化·负载均衡
翼龙云_cloud9 小时前
阿里云渠道商:阿里云自动扩缩容配置教程
运维·服务器·阿里云·云计算
别多香了9 小时前
系统批量运维管理器 paramiko
linux·运维·服务器
2501_941882489 小时前
互联网分布式系统中的性能优化工程实践与多语言示例随笔分享
kafka·rabbitmq
杨云龙UP9 小时前
Linux LVM 在线扩容标准操作流程_20260102
linux·运维·服务器·centos·ux