【中间件】docker+kafka单节点部署---zookeeper模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
    • 消息中间件介绍
    • 1. KRaft模式
    • 2. zookeeper模式
      • 2.1. 单节点部署
        • 安装
        • 验证


前言

最近生产环境上准备部署ELFK日志监控,先在测试环境部署单节点kafka验证调通相关配置,特此记录kafka部署流程,后续再补充kafka高可用方案;

消息中间件介绍

Apache Kafka是一个发布 - 订阅开源消息代理应用程序。这个消息传递应用程序是用“scala”编码的。基本上,这个项目是由Apache软件启动的。Kafka的设计模式主要基于事务日志设计。

1. KRaft模式

后续补充
KRaft 模式相比 ZooKeeper 模式的主要优势如下:

  • 运维简化:只需部署 Kafka,不再依赖 ZooKeeper。

  • 横向扩展能力提升:Kafka 集群能支持的 Partition 数量是衡量其横向扩展能力的重要指标。此前这个值受 ZooKeeper 与 Controller 之间传递元数据的限制,只能到十万量级,而 KRaft 模式不需要这种传递, 因此可以提升到百万量级。

  • 元数据传播提效:元数据通过 Kafka 的 Topic 管理,并利用 Topic 的生产消费传播,集成性更好的同时也提升了一些底层实现的性能。

2. zookeeper模式

本文采用模式
经典模式

2.1. 单节点部署

安装
  1. docker-compose.yml

    cat docker-compose.yml
    ------------------------------- docker-compode.yml ----------------------------------------
    version: '3'
    services:
      kfk:
        container_name: kfk
        image: bitnami/kafka:3.9.0
        environment:
          - ALLOW_PLAINTEXT_LISTENER=yes
          - KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181
        ports:
          - "19092:9092"
          - "19093:9093"
        volumes:
          - ./config/server.properties:/opt/bitnami/kafka/config/server.properties
        networks:
          - zk-kfk
        restart: unless-stopped
    
      zk-server:
        container_name: zk-server
        image: zookeeper:3.8.4
        environment:
          - ALLOW_ANONYMOUS_LOGIN=yes
        restart: always
        networks:
          - zk-kfk
    
    networks:
      zk-kfk:
        driver: bridge
    ------------------------------- docker-compode.yml END ----------------------------------------
    
    
  2. server.properties

    vim server.properties
    ------------------------------- server.properties ----------------------------------------
    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=/bitnami/kafka/data
    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
    
    # kafka日志保留时间168小时
    log.retention.hours=168
    # kafka清理日志间隔,30000ms(5分钟)检查一次日志文件,清理超过时间的日志
    log.retention.check.interval.ms=300000
    
    # zookeeper连接配置
    zookeeper.connect=zk-server:2181
    
    sasl.enabled.mechanisms=PLAIN,SCRAM-SHA-256,SCRAM-SHA-512
    ------------------------------- server.properties END ----------------------------------------
    
验证
  1. docker ps

    在这里插入图片描述

  2. 测试功能

    # 创建名称为demo的topic,副本1 分区1
    docker run -it --rm --network kfk_zk-kfk -e KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181 bitnami/kafka:3.9.0 kafka-topics.sh --bootstrap-server kfk:9092 --create --partitions 1 --replication-factor 1 --topic demo
    
    
    # 查看所有topic信息
    docker run -it --rm --network kfk_zk-kfk -e KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181 bitnami/kafka:3.9.0 kafka-topics.sh --bootstrap-server kfk:9092 --list
    
    # 执行命令
    root@yuan-server:~# docker run -it --rm --network kfk_zk-kfk -e KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181 bitnami/kafka:3.9.0 kafka-topics.sh --bootstrap-server kfk:9092 --list
    
    
    # 生产消息
    # bin/kafka-console-producer.sh --bootstrap-server kafka-server:9092 --topic demo
    
    docker run -it --rm --network kfk_zk-kfk -e KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181 bitnami/kafka:3.9.0 kafka-console-producer.sh --bootstrap-server kfk:9092 --topic demo
    
    
    # 消费者
    # 1.消费最新消息,打开后监听并消费生产者最新生产的消息
    # bin/kafka-console-consumer.sh --bootstrap-server kafka-server:9092 --topic demo
    docker run -it --rm --network kfk_zk-kfk -e KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181 bitnami/kafka:3.9.0 kafka-console-consumer.sh --bootstrap-server kfk:9092 --topic demo
    
    
    # 2.设置--from-beginning参数:表示从头开始消费消息,表示所有历史消息都能看到
    docker run -it --rm --network zk-kafka -e KAFKA_CFG_ZOOKEEPER_CONNECT=zk-server:2181 bitnami/kafka:3.4.0 kafka-console-consumer.sh --bootstrap-server kafka-server:9092 --topic demo --from-beginning
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

38 Opencv HOG特征检测

文章目录 HOGDescriptor 构造函数setSVMDetector 设置支持向量机(SVM)检测器,用于目标检测。compute 用于计算图像区域的HOG描述符。detectMultiScale 多尺度检测目标。示例 HOGDescriptor 构造函数 HOGDescriptor(); HOGDescriptor(const S…

音视频-----RTSP协议 音视频编解码

流媒体协议详解:RTSP、RTP、RTCP、SIP、SDP、RTMP、WebRTC、WebSocket-CSDN博客 上文讲解比较清楚 多媒体编解码基础知识 一文详解WebRTC、RTSP、RTMP、SRT-腾讯云开发者社区-腾讯云 RTP :(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传…

著名的软件都用什么语言编写?

你是否曾经好奇,身边那些耳熟能详的软件,它们究竟是用什么语言编写的?从操作系统到浏览器、从数据库到编程工具,每一款软件背后都承载着开发者们的智慧与技术选型。那么,究竟哪些编程语言成就了这些世界级的软件呢&…

高效自携式潜水装备,助力水下探索|鼎跃安全

水域安全是水上作业、救援和科研活动的重要保障,面对复杂多变的水下环境,一套轻便、高效的全能的智能设备,能在极大的程度上给潜水活动提供保障。传统潜水装备因体积庞大、操作复杂,已无法满足多样化任务需求。自携式潜水装备凭借…

uni-app深度解码:跨平台APP开发的核心引擎与创新实践

在当今数字化浪潮中,移动应用市场呈现出爆炸式增长。为了满足不同用户群体在不同操作系统上的需求,跨平台 APP 开发成为众多开发者的首选策略。uni-app 作为一款领先的跨平台开发框架,以其独特的优势和创新的实践在众多同类产品中脱颖而出。它…

【74HC192减法24/20/72进制】2022-5-17

缘由用74ls192设计一个72进制的减法计数器,需要有逻辑电路图-硬件开发-CSDN问答

第十届“挑战杯”大学生课外学术科技作品竞赛解析及资料

“挑战杯”被誉为大学生科技创新创业的“奥林匹克”盛会,它汇聚了来自各个学科、各个年级的精英人才。在这里,同学们带着对未知的好奇和对知识的渴望,组成一个个团队,向难题发起挑战。现在,第十届“挑战杯”大学生课外…

Linux实验报告14-Linux内存管理实验

目录 一:实验目的 二:实验内容 1、编辑模块的源代码mm_viraddr.c 2、编译模块 3、编写测试程序mm_test.c 4、编译测试程序mm_test.c 5、在后台运行mm_test 6、验证mm_viraddr模块 一:实验目的 (1)掌握内核空间、用户空间&#xff…

趣味编程:心形曲线

目录 1.序言 2.代码展示 3.代码详解 3.1 头文件包含 3.2 绘制坐标轴函数 3.3 main 函数主体部分 4. 小结 1.序言 2025年的第一篇博客就用这个笛卡尔心形图开篇吧,寓意着新年大家能够有心有所属,祝诸位程序猿 / 程序媛 能够早点遇到自己的另一半。…

Ansys Aqwa 中 Diffraction Analysis 的疲劳结果

了解如何执行疲劳分析,包括由 Ansys Aqwa 计算的海浪行为。 了解疲劳分析 大多数机器故障是由于负载随时间变化,而不是静态负载。这种失效通常发生在应力水平明显低于材料的屈服强度时。因此,当存在动态载荷时,仅依赖静态失效理…

CAD图块是什么?如何进行CAD图块分解?

CAD图块是CAD软件中的一个重要概念,它指的是由一组图形元素(如点、线、弧、圆、多边形等)组合而成的整体。在CAD画图中,为了能够简化操作、提高效率,保持设计的一致性,很多时候,我们会选择建立C…

黑马JavaWeb开发跟学(十四).SpringBootWeb原理

黑马JavaWeb开发跟学 十四.SpringBootWeb原理 SpingBoot原理1. 配置优先级2. Bean管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 3. SpringBoot原理3.1 起步依赖3.2 自动配置3.2.1 概述3.2.2 常见方案3.2.2.1 概述3.2.2.2 方案一3.2.2.3 方案二 3.2.3 原理分析3.2.3.1 源码跟踪…

被催更了,2025元旦源码继续免费送

“时间从来不会停下,它只会匆匆流逝。抓住每一刻,我们才不会辜负自己。” 联系作者免费领💖源💖码。 三联支持:点赞👍收藏⭐️留言📝欢迎留言讨论 更多内容敬请期待。如有需要源码可以联系作者免…

Python基础语法(上)

目录 一、print函数及常量表达式 1.print函数 2.常量表达式 二、变量 1.定义变量的规则 2.python的动态类型特性 3.字符串 三、注释 四、input函数 1.input函数 2.变量类型转换 五、运算符 1.算数运算符 2.关系运算符 (1)整形的比较 &am…

2024 年度总结

时光荏苒,2024 年即将画上句号,回顾这一年的写博历程,有付出、有收获、有成长,也有诸多值得回味与反思的瞬间。 一、内容创作 主题涉猎:这一年,我致力于探索多样化的主题,以满足不同读者群体的…

汉王扫描王 2.9.16 |免费无广告的智能扫描软件,支持多种格式导出

汉王扫描王是一款功能全面的智能扫描软件,集成了文字识别、表格提取和文档转换等功能。它支持将文档转换为PDF、Word、Excel等多种格式,非常适合学生、教师、业务人员和财务工作者使用。该软件具备手机扫描仪功能,能够自动抠边、矫正文档&…

“善弈者”也需妙手,Oclean欧可林:差异化不是说说而已

作者 | 曾响铃 文 | 响铃说 俗话说,“牙痛不是病,痛起来要人命”。这话意思大家都知道,牙痛虽不是什么大病,可一旦发作却是极难忍受。 前几日,Oclean欧可林举办了一场AirPump A10氧气啵啵冲牙器新品品鉴会&#xff…

VBA 64位API声明语句第005讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

golang 编程规范 - 项目目录结构

原文:https://makeoptim.com/golang/standards/project-layout 目录结构 Go 目录 cmdinternalpkgvendor 服务端应用程序目录 api Web 应用程序目录 web 通用应用程序目录 buildconfigsdeploymentsinitscriptstest 其他目录 assetsdocsexamplesgithooksthird_par…

OFDM学习-(二)长短序列和PPDU整体数据处理流程

OFDM学习 (二)长短序列和PPDU整体数据处理流程 OFDM学习前言一、短序列短序列的作用 二、长序列三、PLCP/SIGNAL/DATA数据处理流程三、fpga实现STS模块LTS模块训练序列模块仿真波形 总结 前言 根据框图可以知道发射机这部分信号在DA转换之前&#xff0c…