kafka 3.5.0集群环境部署(使用自带的zookeeper)

环境和安装包准备:

  • 管理界面包:kafka-manager-1.3.3.7.zip (链接)
  • kafka二进制包:kafka_2.13-3.5.0.tgz (链接)
  • java包:jdk-8u291-linux-x64.tar.gz (链接)
节点IPbroker id
10.10.10.100
10.10.10.111
10.10.10.122

安装java:

  • 解压:tar -zxf jdk-8u291-linux-x64.tar.gz
  • 编辑/etc/profile配置文件,文件末尾添加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_333 #java解压目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

  • 让配置生效source /etc/profile
  • 查看是否安装成功:java -version

安装kafka:

  • 解压kafka_2.13-3.5.0.tgz包,编辑config/zookeeper.properties配置文件:
# the directory where the snapshot is stored.
dataDir=/usr/local/kafka/zookeeper/data

#修改为自定义的zookeeper日志目录
dataLogDir=/usr/local/kafka/zookeeper/log

# the port at which the clients will connect
clientPort=2181

#注释掉
#maxClientCnxns=0

#设置连接参数,添加如下配置
#为zk的基本时间单元,毫秒
tickTime=2000
#Leader-Follower初始通信时限 tickTime*10
initLimit=10
#Leader-Follower同步通信时限 tickTime*5
syncLimit=5

#设置broker Id的服务地址
server.0=10.10.10.10:2888:3888
server.1=10.10.10.11:2888:3888
server.2=10.10.10.12:2888:3888

  • 创建好对于目录和文件:
 mkdir /usr/local/kafka/zookeeper/data -p
 mkdir /usr/local/kafka/zookeeper/log -p
 echo "0" > /usr/local/kafka/zookeeper/data/myid # zk集群id
  • 编辑kafka配置文件config/zookeeper.properties,只需修改如下几项配置:
broker.id=0 # 需要修改为集群唯一
listeners=PLAINTEXT://10.10.10.10:2888:9092 # 填节点地址
zookeeper.connect=10.10.10.10:2181,10.10.10.11:2181,10.10.10.12:2181 # 集群节点IP地址

启动服务:

  • 启动zookeeper:

    bin/zookeeper-server-start.sh -daemon config/zookeeper.properties; echo $?
    
  • 启动kafka:

    JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties; echo $?
    

注意:先把集群所有节点的zookeeper启动起来,再启动kafka

功能验证:

  • 创建3副本主题:
bin/kafka-topics.sh --create --topic perf-test --replication-factor 3 --partitions 3 --bootstrap-server 10.10.10.10:9092
  • 生产消息:
bin/kafka-producer-perf-test.sh --topic perf-test --num-records 1000 --record-size 64 --throughput -1 --producer-props bootstrap.servers=10.10.10.10:9092

在这里插入图片描述

  • 消费消息:
bin/kafka-consumer-perf-test.sh --topic perf-test --bootstrap-server 10.10.10.10:9092 --fetch-size 64 --messages 100000

在这里插入图片描述

配置可视化界面

  • 解压包:kafka-manager-1.3.3.7.zip
  • 修改conf/application.conf配置:
kafka-manager.zkhosts="10.10.10.10:2181,10.10.10.11:2181,10.10.10.12:2181"
#kafka-manager.zkhosts=${?ZK_HOSTS} # 注释掉这行

  • 启动服务:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9001 & #不加-Dhttp.port,默认9000端口
  • 登录页面,添加集群:


    在这里插入图片描述
    在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
首先,你需要一个 Kubernetes 集群,如果没有的话,可以使用 Minikube 或者其他 Kubernetes 集群搭建方案来搭建一个本地的 Kubernetes 集群。 接下来,你需要创建一个 ZooKeeper 的 Deployment 和 Service: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: zookeeper spec: replicas: 1 selector: matchLabels: app: zookeeper template: metadata: labels: app: zookeeper spec: containers: - name: zookeeper image: zookeeper:3.6.2 ports: - containerPort: 2181 - containerPort: 2888 - containerPort: 3888 volumeMounts: - name: data mountPath: /data volumes: - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: zookeeper spec: selector: app: zookeeper ports: - name: client port: 2181 protocol: TCP - name: follower port: 2888 protocol: TCP - name: leader port: 3888 protocol: TCP ``` 这个 YAML 文件定义了一个名为 zookeeper 的 Deployment 和一个名为 zookeeper 的 Service。Deployment 使用zookeeper:3.6.2 镜像,它会启动一个单节点的 ZooKeeper 实例。Service 会将端口 2181、2888 和 3888 暴露出来,以便于 Kafka 集群连接 ZooKeeper。 然后,你需要创建三个 Kafka 的 Deployment 和 Service,每个 Kafka 集群都需要一个 Deployment 和一个 Service: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: kafka-cluster-1 spec: replicas: 3 selector: matchLabels: app: kafka-cluster-1 template: metadata: labels: app: kafka-cluster-1 spec: containers: - name: kafka image: wurstmeister/kafka:2.13-2.7.0 env: - name: KAFKA_BROKER_ID valueFrom: fieldRef: fieldPath: metadata.uid - name: KAFKA_ADVERTISED_HOST_NAME valueFrom: fieldRef: fieldPath: status.podIP - name: KAFKA_ZOOKEEPER_CONNECT value: zookeeper:2181 - name: KAFKA_LOG_DIRS value: /kafka/kafka-cluster-1 ports: - containerPort: 9092 volumeMounts: - name: data mountPath: /kafka volumes: - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: kafka-cluster-1 spec: selector: app: kafka-cluster-1 ports: - name: kafka port: 9092 protocol: TCP ``` 你需要将上面的 YAML 文件中的相应字段替换成你自己的配置。这个 YAML 文件定义了一个名为 kafka-cluster-1 的 Deployment 和一个名为 kafka-cluster-1 的 Service。Deployment 使用了 wurstmeister/kafka:2.13-2.7.0 镜像,它会启动三个 Kafka 节点。每个节点会注册到 ZooKeeper 上,Kafka 集群使用 ZooKeeper 来管理节点、分区和副本。Service 会将端口 9092 暴露出来,以便于外部应用程序连接 Kafka 集群。 同样的方法,你可以创建另外两个 Kafka 集群的 Deployment 和 Service。完成后,你就可以使用 Kafka 集群了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值