Kafka安装部署以及相关介绍1
大家好这里是程序员十七最近在学Kafka的知识今天给大家分享一下关于Kafka的基础知识。如果有用的话可以帮忙点赞收藏一下吗谢谢大家消息队列1.介绍我们想要了解Kafka首先需要知道什么是消息队列。消息队列MQ存放消息的容器这里的消息可以是任何东西比如用户下单了订单支付登录注册成功这些都是消息而消息队列就是存储这些消息的地方。kafka就是其中的一个组件它是消息队列的具体实现。2.应用消息队列主要应用于四种场景异步处理系统解耦流量销峰日志处理。这里就不赘述了它还有两种主要模型点对点一条消息只能被一个消费者消费发布/订阅一条消息所有的订阅者都可以消费。我们要学的Kafka就是发布订阅这种模型。Kafkakafka安装部署1.前言kafka在以前必须依赖zookeeper。我们可以把它看作一个分布式协调服务容器在一个大型的分布式系统中每台服务器需要协同合作所以就需要zookeeper统一管理这些服务器但是现在的版本Kafka完全可以不用zookeeper直接用内置的kRaft协议就可以自己管理集群。我今天向大家介绍的就是这个新版本的Kafka。2.下载安装现在Kafka下载部署最简便的就是使用dokcer容器。博主这里使用的是Mac系统所以主要介绍Mac相关命令不过这个docker命令其实没有多大的差别哦下载docker desktop。链接地址 https://www.docker.com/products/docker-desktop/大家可以根据自己的电脑系统下载对应的安装包。下载完成后我们可以修改一下相关的加速器配置。这个是我现在的相关配置。下载完成后在docker中打开终端使用命令拉去镜像docker pull docker.m.daocloud.io/apache/kafka:3.7.0docker images | grep kafka拉取成功后可以使用这个命令验证一下是否成功接下来我们可以搭建Kafka首先在终端命令行创建一个文件并且cd到这个文件下1. mkdir kafka-cluster 2. cd kafka-cluster然后使用docker-compose命令# 直接创建空文件 touch docker-compose.yml # 然后用文本编辑器打开它 open docker-compose.yml将下面这个命令插入到打开的文件中保存version: 3.8 services: kafka1: image: apache/kafka:3.7.0 # 和你之前拉取的版本保持一致 container_name: kafka1 ports: - 9092:9092 environment: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 # 重点为客户端包括你的 Mac 和 Offset Explorer提供访问地址 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_CONTROLLER_QUORUM_VOTERS: 1kafka1:9093,2kafka2:9094,3kafka3:9095 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 2 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2 KAFKA_LOG_DIRS: /var/lib/kafka/data volumes: - kafka1_data:/var/lib/kafka/data kafka2: image: apache/kafka:3.7.0 container_name: kafka2 ports: - 9093:9092 # 映射到宿主机的 9093 端口 environment: KAFKA_NODE_ID: 2 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9094 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_CONTROLLER_QUORUM_VOTERS: 1kafka1:9093,2kafka2:9094,3kafka3:9095 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 2 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2 KAFKA_LOG_DIRS: /var/lib/kafka/data volumes: - kafka2_data:/var/lib/kafka/data kafka3: image: apache/kafka:3.7.0 container_name: kafka3 ports: - 9094:9092 # 映射到宿主机的 9094 端口 environment: KAFKA_NODE_ID: 3 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9095 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_CONTROLLER_QUORUM_VOTERS: 1kafka1:9093,2kafka2:9094,3kafka3:9095 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 2 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2 KAFKA_LOG_DIRS: /var/lib/kafka/data volumes: - kafka3_data:/var/lib/kafka/data volumes: kafka1_data: kafka2_data: kafka3_data:最后使用命令运行起来我们就成功就搭建好Kafka集群了# 确保你在 docker-compose.yml 所在的目录 docker-compose up -d3.可视化工具kafka也提供了一个可视化工具大家下载下运行Kafka集群后都可以在这个里面看见了。下载链接https://www.kafkatool.com/download.html总结关于Kafka就简单介绍到这里下次分享Kafka的架构知识。感谢大家点赞