kafka 消费模式基础架构

kafka 消费模式 &基础架构

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.kafka 消费模式
      • 基础架构
      • 基础架构2:
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

概述

kafka消费模式

需求:

设计思路

实现思路分析

1.kafka 消费模式

Kafka提供了两种主要的消费模式:发布-订阅模式和分区模式。

  1. 发布-订阅模式:在这种模式下,一个消息可以被多个消费者同时消费。每个消费者都独立地读取消息,并且不会影响其他消费者。这种模式非常适用于需要广播消息的场景,例如实时日志和即时通讯等。

  2. 分区模式:在这种模式下,消息被划分为多个分区并存储在不同的Kafka主题中。每个分区只能由一个消费者组中的一个消费者消费。这样可以保证同一个分区的消息按顺序被消费,并且可以进行负载均衡。这种模式适用于需要保证消息顺序和处理吞吐量的场景,例如订单处理和数据仓库等。

Kafka还支持多种消费者组合消费模式的组合,例如多个消费者组同时消费同一个主题,或者多个消费者组按分区消费同一个主题。这些模式可以根据具体的业务需求来选择。

基础架构

Kafka 是一个分布式流数据平台,用于高吞吐量、低延迟的处理大规模数据流。它具有以下基础架构组件:

  1. Producer(生产者):生产者负责将数据发布到 Kafka 集群。它可以将数据发送到指定的 topic 中。

  2. Consumer(消费者):消费者从 Kafka 集群中订阅一个或多个 topic,并消费流入的数据。消费者可以以不同的方式进行消费,如批量消费、实时消费等。

  3. Broker(代理服务器):Broker 是 Kafka 集群中的核心组件,负责接收和处理 Producer 发送的消息,并将消息持久化到磁盘中。每个 Broker 都是一个独立的服务器节点,多个 Broker 组成一个 Kafka 集群。

  4. Topic(主题):Topic 是消息的逻辑容器,类似于消息队列中的主题或频道。Producer 发布的消息会被发送到指定的 topic 中,而 Consumer 订阅的 topic 中的消息会被消费。

  5. Partition(分区):每个 topic 可以被分为多个分区,每个分区都是有序的、不可变的消息序列。分区可以分布在不同的 Broker 上,以实现负载均衡和容错。

  6. Replication(副本):Kafka 使用副本机制来提供数据的可靠性和容错性。每个分区都有多个副本,其中一个是 leader,负责处理客户端的读写请求,其他副本则充当 follower,用于备份数据和提供容错。

  7. Consumer Group(消费者组):Consumer Group 是一组共享相同消费逻辑的 Consumer 实例。当多个消费者加入同一个 Consumer Group 时,它们会协调消费 topic 中的分区,以实现负载均衡和并行处理。

  8. ZooKeeper:Kafka 使用 ZooKeeper 来管理和协调集群中的 Broker、Producer 和 Consumer。它负责维护集群的元数据,监控 Broker 的状态,并通知各个组件的变化。

以上是 Kafka 的基础架构组件,它们共同协作,实现了高性能、可扩展的数据流处理能力。

基础架构2:

  1. Producer(生产者):负责将消息发布到 Kafka 集群。Producer 将消息分发到指定的 Topic(主题)。每个消息包含一个键和一个值。

  2. Topic(主题):是消息发布的类别或者频道。Producer 可以将消息发布到一个或者多个主题。

  3. Consumer Group(消费者组):由一组消费者实例组成。每个消费者实例会订阅一个或多个主题,并从中消费消息。

  4. Broker(代理服务器):Kafka 集群由多个 Broker 组成,每个 Broker 负责存储和管理一部分主题的消息。Broker 之间会进行数据副本的同步,以实现高可用性。

  5. ZooKeeper:Kafka 使用 ZooKeeper 来进行集群管理和协调。ZooKeeper 负责存储关于 Broker、Topic 和 Consumer Group 等元数据信息,并协助进行故障恢复。

  6. Consumer(消费者):消费者以 Consumer Group 的形式订阅一个或多个主题,并从其中消费消息。每个消费者实例只会消费 Consumer Group 中的一个分区。

  7. Partition(分区):主题可以被分为一个或多个分区,每个分区是有序且独立存储的。分区在多个 Broker 之间进行数据副本的同步,以提高可用性和吞吐量。

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐

  1. 暂无

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~,如果有兴趣,可以加文末的交流群,大家一起进步哈

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mainwindow.ui和mainwindow.h和ui_mainwindow.h这几个文件之间的联系是什么

在Qt应用程序开发中,mainwindow.ui, mainwindow.h, 和 ui_mainwindow.h 这三个文件之间有着紧密的联系,共同构成了使用Qt Designer设计的图形用户界面(GUI)应用程序的基础。下面是这三个文件各自的作用及它们之间的关联&#xff1…

HTML5 文件处理及应用

HTML5 文件处理及应用 目录 核心对象文件信息读取文件拖放FileReaderSyncFileWriter APIBlob URL与 revokeObjectURL()跨源资源共享 (CORS)HTML5文件File API为浏览器提供了与用户计算机上的文件进行交互的能力,使得Web应用程序能够在客户端直接处理文件数据,而无需依赖服务…

Golang:使用jszwec/csvutil读取csv文件

jszwec/csvutil 高性能、惯用的CSV记录编码和解码到本机Go结构 文档 https://github.com/jszwec/csvutil 安装 go get github.com/jszwec/csvutil要读取的文件 user.csv name,age,CreatedAt jacek,26,2012-04-01T15:00:00Z john,,2001-01-01T00:00:00Z读取示例 package m…

93.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-增强技能信息显示后进行分析

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

Ant Design Vue中 a-table 嵌套子表格

需求:在父表格中嵌套子表格,当点击展开某一行时,有展开的关闭当前展开行。使用a-table中的expandedRowKeys 属性和expand 方法。链接:Ant Design Vue 一、属性说明: expandedRowKeys:这个主要是控制展开某行…

都2024年了!是谁还不会优化 Hive 的小文件啊!!!速看!

文章目录 小文件产生的原因1.查询建表或者插入2.装载数据3.动态分区小文件影响解决方法针对已经存在的小文件进行优化1.小文件归档2.getmerge3.concatenate4.重写针对写入数据时的优化1.调参优化2.动态分区优化3.使用 Spark 算子控制小文件数量查看 HDFS 上的文件时,无意间点进…

【QT+VS】如何在现有VS项目中添加Qt界面?【全网最详细】

0. 前置步骤 参考如下链接文章中的 前3个步骤(1:下载Qt;2:安装Qt;3:安装Qt插件),完成环境的配置和安装。 深耕AI:如何联合Qt,VS,C++,来开发一个电脑版软件(简单有趣,详细) 本文的基础项目链接为: c++工程+图像分割预测+mmdet+实例分割+最新工程+简洁易懂+新手…

搭建自己的视频通话服务器Janus(WebRTC)

1. 安装janus apt install janus 高版本的Ubuntu已经可以直接安装了,不要编译那么麻烦了 2. 安装nginx janus 是后端,需要nginx或者其他等提供前端页面的服务器,此外因为这里并没有正式的证书,只能用自签名的证书用于https。 …

Mac 更改登陆密码,不是appleid 密码

在Mac 上更改登录密码 在Mac 上,选取苹果菜单 >“系统设置”,然后点按边栏中的“用户与群组” 。 … 点按右侧用户名旁边的“简介”按钮 。 点按“更改”。 在“旧密码”栏输入你的当前密码。 在“新密码”栏中输入新密码,然后在“确认密码…

「数据结构」队列

目录 队列的基本概念 队列的实现 头文件queue.h 实现函数接口 1.初始化和销毁 2.出队列和入队列 3.获取队头元素和队尾元素 4.队列长度判空 后记 前言 欢迎大家来到小鸥的博客~ 个人主页:海盗猫鸥 本篇专题:数据结构 多谢大家的支持啦&#xff…

Java入门基础学习笔记36——面向对象基础

面向对象编程快速入门: 计算机是用来处理数据的。 单个变量 数组变量 对象数据 Student类: package cn.ensource.object;public class Student {String name;double chinese_score;double math_score;public void printTotalScore() {System.out.pr…

【哈希】Leetcode 219. 存在重复元素 II【简单】

存在重复元素 II 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输…

偏微分方程算法之椭圆型双调和方程问题

目录 一、研究对象 二、问题解析 一、研究对象 针对双调和方程的边值问题:

达梦数据库使用dmlcvt命令找回更改前的数据

在生产系统上不小心修改了表数据后最快的方法是用闪回查询找回。但时间不能超过undo_retention&#xff08;默认90秒&#xff09;。其实最标准的处理方法是在其他机器上将数据库恢复到修改前的时刻。但数据库比较大时恢复时间较长。真实场景可能比较急。那么也可以分析归档日志…

数组序号Spinner

使用Spnner代替编辑框&#xff0c;只能选择已有的&#xff0c;不会越界&#xff0c;大大简化了代码。 String[] SA new String[list.size()]; for (int i0; i<SA.length; i) {SA[i] String.valueOf(i); } ArrayAdapter<String> adapter1 new ArrayAdapter<>(…

[国产大模型简单使用介绍] 开源与免费API

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 随着大模型技术蓬勃发展和开源社区越来越活跃,国内的大模型也如雨后春笋一般.这时,一些就会问了,有了llama3,Mistral还有Gemma等等,国外大厂接连发力,一些开源社区也会有一些不错的模型,国内怎么比?对一个人使用,oll…

下雨!大水蚁引发的水文!看比赛咯,曼联VS曼城——早读(逆天打工人爬取热门微信文章解读)

唠唠嗑 水一水 引言Python 代码结尾 引言 今天星期六 大小周 一个等了很久的双休 昨天晚上真的是吓到我了 漫天的小飞虫 我一开始还以为是一两只 没想到那些小飞虫 从阳台不断飞进来 在山卡拉下面租房子 也是太恐怖了 来个特写 他们也就一个晚上的时间 成虫 天气合适 长翅…

大语言模型发展历史

大语言模型的发展历史可以追溯到自然语言处理&#xff08;NLP&#xff09;和机器学习早期的探索&#xff0c;但真正快速发展起来是在深度学习技术兴起之后。以下是大语言模型发展的一个简要历史概述&#xff1a; 早期阶段&#xff08;20世纪50-90年代&#xff09;&#xff1a; …

网络拓扑—DNS服务搭建

文章目录 DNS服务搭建网络拓扑配置网络DNSPC 安装DNS服务配置DNS服务创建正向查找区域创建反向查找区域创建子域名 PC机DNS域名解析 DNS服务搭建 网络拓扑 为了节省我的U盘空间&#xff0c;没有用路由器&#xff0c;所以搭建的环境只要在同网段即可。 //交换机不用考虑 DNS&a…

MiniCPM-Llama3-V-2_5-int4

MiniCPM-Llama3-V-2_5-int4大模型部署使用环境&#xff1a; python3.8cuda11.8其它要求&#xff0c;按照安装文档要求下载即可 我是在算力平台用4090跑的&#xff0c; GPU 显存&#xff08;8GB&#xff09;可以部署推理 int4 量化版本&#xff0c;如果推理非量化版本需要更高显…