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

相关推荐
威迪斯特21 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.21 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔21 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX21 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞0521 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
春日见21 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡1 天前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
消失的旧时光-19431 天前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器
斯普信专业组1 天前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
liu****1 天前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术