当前位置: 首页 > news >正文

kafka 单机部署

使用docker-compose安装,这个是单机版的。


一:建立

直接亮compose文件.

version: '3.6'
services:kafka:image: 'bitnami/kafka:4.0.0'  # KRaft模式支持版本container_name: kafkaports:- "9092:9092"  # 客户端访问端口- "9093:9093"  # 控制器通信端口environment:TZ: Asia/Shanghai# KRaft核心配置KAFKA_CFG_PROCESS_ROLES: broker,controllerKAFKA_CFG_NODE_ID: 1KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093  # 改为服务器IP# 监听配置(允许外部访问的核心修改)# 1. 监听所有网络接口(0.0.0.0),而不仅是本地(127.0.0.1)KAFKA_CFG_LISTENERS: SASL_PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093# 2. 告知外部客户端连接的地址(服务器公网IP)KAFKA_CFG_ADVERTISED_LISTENERS: SASL_PLAINTEXT://(你的公网ip):9092KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: SASL_PLAINTEXT:SASL_PLAINTEXT,CONTROLLER:PLAINTEXTKAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER# SASL认证配置KAFKA_CFG_SASL_ENABLED_MECHANISMS: PLAINKAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAINKAFKA_CFG_SECURITY_INTER_BROKER_PROTOCOL: SASL_PLAINTEXTKAFKA_CFG_CREDENTIALS_PROVIDER: FILEKAFKA_CLIENT_USERS: adminKAFKA_CLIENT_PASSWORDS: admin123KAFKA_INTER_BROKER_USER: adminKAFKA_INTER_BROKER_PASSWORD: admin123# 集群ID(首次启动会自动生成,可固定)# KAFKA_KRAFT_CLUSTER_ID: "MkU3OEVBNTcwNTJENDM2Qk"volumes:- ./data/kafka:/bitnami/kafka/data  # 数据持久化network_mode: "host"restart: unless-stoppedkafka-ui:image: provectuslabs/kafka-ui:latestcontainer_name: kafka-uiports:- "19092:19092"  # 将容器内服务端口也改为19092,避免冲突environment:TZ: Asia/Shanghai# 配置Kafka集群连接KAFKA_CLUSTERS_0_NAME: kraft-cluster  # 集群显示名称KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS: 127.0.0.1:9092  # 连接地址# 配置SASL认证(与Kafka配置对应)KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL: SASL_PLAINTEXTKAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM: PLAINKAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin123";# 启用Kafka UI认证(可选)AUTH_TYPE: LOGIN_FORMSPRING_SECURITY_USER_NAME: adminSPRING_SECURITY_USER_PASSWORD: admin123# 修改容器内Kafka UI监听端口为19092SERVER_PORT: 19092 depends_on:- kafkanetwork_mode: "host"restart: unless-stopped

启动命令:

docker-compose up -d  

查看命令:

docker ps -a

停止命令:

docker-compose down 

二:开放端口

服务器后台放开端口,外部可以访问:
9092   和  19092

三:测试

要开两个终端

1.客户端(终端一)

#进入:docker exec -it kafka /bin/bash#创建主题:/opt/bitnami/kafka/bin/kafka-topics.sh \--create \--topic test_topic \--bootstrap-server 127.0.0.1:9092 \--partitions 1 \--replication-factor 1 \--command-config <(echo "security.protocol=SASL_PLAINTEXT\nsasl.mechanism=PLAIN\nsasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin123\";")#启动生产者:/opt/bitnami/kafka/bin/kafka-console-producer.sh \--topic test_topic \--bootstrap-server 127.0.0.1:9092 \--producer-property security.protocol=SASL_PLAINTEXT \--producer-property sasl.mechanism=PLAIN \--producer-property sasl.jaas.config="org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin123\";"

2.服务端(终端二)

进入:docker exec -it kafka /bin/bash启动消费者:/opt/bitnami/kafka/bin/kafka-console-consumer.sh \--topic test_topic \--from-beginning \--bootstrap-server 127.0.0.1:9092 \--consumer-property security.protocol=SASL_PLAINTEXT \--consumer-property sasl.mechanism=PLAIN \--consumer-property sasl.jaas.config="org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin123\";"

四:页面

http://www.dtcms.com/a/330926.html

相关文章:

  • 【Android】适配器与外部事件的交互
  • Mybatis学习笔记(三)
  • [激光原理与应用-267]:理论 - 几何光学 - 胶卷相机的组成和工作原理
  • PostgreSQL 免安装
  • tomcat 定时重启
  • 通过 GitHub520 项目自动获取最新 Hosts 配置,无需手动查询 IP。
  • 语义 HTML 的核心价值:提升 SEO 与 AI 理解
  • 肖臻《区块链技术与应用》第14-15讲 超越货币:以太坊如何用“智能合约”开启去中心化应用时代
  • 备战亚马逊“Prime Big Deal Days”:卖家如何解锁年末增长密钥?
  • 2025年大模型安全岗的面试汇总(题目+回答)
  • 回归算法:驱动酒店智能化定价与自动化运营的引擎—仙盟创梦IDE
  • 不同ide回到上一个文件快捷键
  • STM32--寄存器与标准库函数--通用定时器--输出比较(PWM生成)
  • 区块链在可信空间智能合约中的应用
  • 在IAR Embedded Workbench for Arm中实现NXP S32K3安全调试
  • python sqlite3模块
  • iOS App TF上架全流程实战 高效内测分发与IPA包管理
  • 【KALI】第一篇 安装Kali Linux虚拟机之详细操作步骤讲解
  • Elasticsearch RBAC 配置:打造多租户环境的安全访问控制
  • 一篇文章读懂.Net的依赖注入
  • 应用银行卡识别技术,构建更安全、便捷的数字身份认证与支付生态
  • LeetCode hot 100 day1
  • springboot+vue实现通过poi完成excel
  • 云计算-多服务集群部署实战指南:从JumpServer到Kafka、ZooKeeper 集群部署实操流程
  • MySQL流程处理函数
  • 计算机视觉Open-CV
  • Swift 实战:用链表和哈希表写出高性能的贪吃蛇引擎(LeetCode 353)
  • 力扣-1143.最长公共子序列
  • 【LeetCode 热题 100】295. 数据流的中位数——最大堆和最小堆
  • 前端开发如何优化 SEO:常见问题及解决方案全解析​