kafka进阶

2023-11-02

初识kafka

  • 消息队列
  • 分布式发布-订阅消息系统
  • 日志处理

基础架构

  • Producer:消息生产者,向Kafka中发布消息的角色。
  • Consumer:消息消费者,即从Kafka中拉取消息消费的客户端。
  • Consumer Group:消费者组,消费者组则是一组中存在多个消费者,消费者消费Broker中当前Topic的不同分区中的消息,消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。某一个分区中的消息只能够一个消费者组中的一个消费者所消费
    Broker:经纪人,一台Kafka服务器就是一个Broker,一个集群由多个Broker组成,一个Broker可以容纳多个Topic。
  • Topic:主题,可以理解为一个队列,生产者和消费者都是面向一个Topic
  • Partition:分区,为了实现扩展性,一个非常大的Topic可以分布到多个Broker上,一个Topic可以分为多个Partition,每个Partition是一个有序的队列(分区有序,不能保证全局有序)
    Replica:副本Replication,为保证集群中某个节点发生故障,节点上的Partition数据不丢失,Kafka可以正常的工作,Kafka提供了副本机制,一个Topic的每个分区有若干个副本,一个Leader和多个Follower
  • Leader:每个分区多个副本的主角色,生产者发送数据的对象,以及消费者消费数据的对象都是Leader。
  • Follower:每个分区多个副本的从角色,实时的从Leader中同步数据,保持和Leader数据的同步,Leader发生故障的时候,某个Follower会成为新的Leader。

特性

  • 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。

  • 解耦和扩展性:项目开始的时候,并不能确定具体需求。消息队列可以作为一个接口层,解耦重要的业务流程。只需要遵守约定,针对数据编程即可获取扩展能力。

  • 冗余:可以采用一对多的方式,一个生产者发布消息,可以被多个订阅topi

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kafka进阶 的相关文章

  • 【Ubuntu】systemd 及其工具

    什么是 systemd systemd 是一个用于管理 Linux 系统启动过程和系统服务的初始化系统 它是现代 Linux 发行版中广泛采用的初始化系统 负责启动和管理操作系统的各个组件 systemd 的设计目标是提高系统启动速度 优化
  • 内网穿透-frp

    frp的作用 1 利用处于内网或防火墙后的机器 对外网环境提供 http 或 https 服务 2 对于 http https 服务支持基于域名的虚拟主机 支持自定义域名绑定 使多个域名可以共用一个80端口 3 利用处于内网或防火墙后的机器
  • Myeclipse10下载,安装,破解,插件,优化介绍(CSDN首发)

    一 Myeclipse10下载与破解 Genuitec公司发布了MyEclipse 10 一款Genuitec旗下的商业化Eclipse集成开发工具的升级版本 MyEclipse 10基于Eclipse Indigo构建 为Java和Jav
  • TOMCAT的SERVER.XML的详细说明

    Example Server Configuration File gt
  • 如何让div靠右_div向右偏移设置 css让div靠右移一定距离

    转自 https www thinkcss com shili 1372 shtml div对象盒子向右偏移设置 使用css让div靠右一定距离 div向右移教程实例篇 div向右偏移一定距离 可采用margin外边距实现 也可以使用pad
  • 史上最全的自动驾驶研究报告(上)

    https www jianshu com p b85a982ad4c8 自动驾驶是百年汽车工业史上又一次伟大的范式转移 将重新定义汽车产业规则 汽车的产品定义将不再是 行走的精密仪器 也不只是一台 行走的计算机 而是 行走的第三空间 车厂
  • RAM明明断电会丢失数据,为什么初始化的全局变量存储在RAM?详细分析程序的存储

    前言 1 之前因为一个字符指针和字符数组指针引发的bug 折磨了我一个下午才发现问题 之后我就打算研究一下系统是如何发现野指针乱访问问题 后面就一直深入到微机系统中的内存管理了 2 这些其实都是基础知识 只不过我一直不太明白 所以在此记录一
  • Flink架构

    1 Flink 任务提交流程 TaskManager是一个独立的jvm进程 每个task slot表示TaskManager拥有资源的一个固定大小的子集 假如一个TaskManager有三个slot 那么它会将其管理的内存分成三份给各个sl
  • 使用cobra创建cli命令行工具

    什么是cobra Cobra既是用于创建强大的现代CLI应用程序的库 也是用于生成应用程序和命令文件的程序 Cobra是一个库 提供了一个简单的界面来创建类似于git go工具的强大的现代CLI界面 Cobra也是一个应用程序 它将生成您的
  • Dcat-admin 重写底部版权内容

    Dcat admin 重写底部版权内容 背景 使用 deploy 自动发布项目 无法直观知道发布成功与否 想到可在版权代码位置 添加更新时间来解决该问题 原理 已知 Dcat admin 加载布局文件时候 优先加载 resources vi
  • spring aop @Pointcut语法详解

    转载 https blog csdn net qq 26860451 article details 100554377
  • 各种UI库使用总结

    各种UI库使用总结 工作了这么年 使用了一些UI库 简单的总结一下 UI库也是五花八门 根据自己的产品 应用场景吧 没有绝对合适的 各有各的应用场景吧 QT 这几年前后在一些嵌入式上使用过QT来做为开发 有带UI及不带UI界面的 版本的基本
  • 基于51单片机的羽毛球计分器(含Keil程序和Proteus文件)

    系统概述 系统使用的模块有AT89C51单片机 LCD1602显示屏 矩阵键盘 蜂鸣器 整个羽毛器计分器内的比赛双方的比赛分数和比赛时间和节数等都会在LCD1602显示屏上进行显示 通过左侧的按键可以增加双方的分数 还可以控制比赛的开始和暂
  • 寻找最大整数——从键盘输入四个整数,找出其中的最大值并将其输出

    问题描述 从键盘输入四个整数 找出其中的最大值并将其输出 输入说明 输入4个整数 用空格分隔 输出说明 输出值最大的一个整数 输入样例 25 99 46 0 输出样例 99 include
  • 编程实现朴素贝叶斯分类算法

    from sklearn datasets import load iris iris load iris from sklearn naive bayes import GaussianNB 高斯分布型 gnb GaussianNB 构造
  • Chapter4 Duality theory对偶理论--Introduction to linear optimization

    组会讲稿 传到这里分享下
  • 未名湖边的烦恼 蓝桥杯

    问题描述 每年冬天 北大未名湖上都是滑冰的好地方 北大体育组准备了许多冰鞋 可是人太多了 每天下午收工后 常常一双冰鞋都不剩 每天早上 租鞋窗口都会排起长龙 假设有还鞋的m个 有需要租鞋的n个 现在的问题是 这些人有多少种排法 可以避免出现
  • 前端配置跨域代理

    跨域时对于前后端开发中一个非常常见的问题 当我们客户端向我们的服务器请求接口数据的时候 我们可以请求到服务器当中的数据 但是我们把数据返回我们的客户端的时候就会产生跨域问题 所以 跨域是针对我们浏览器设置一个安全策略 就是当我们的协议 域名
  • Handler processing failed; nested exception is java.lang.NoClassDefFoundError

    在使用阿里云发送短信接口时出现此错误 原因是springmvcjar包和阿里云jar包出现冲突 建议使用下面两个版本
  • 【工具】VirtualBox虚拟机安装Windows操作系统

    前面的文章中介绍了VirtualBox虚拟机的安装 VirtualBox虚拟机中如何安装操作系统 是本文的重点 下面将进行详细介绍 使用VirtualBox虚拟机安装Windows操作系统有很多好处 主要包括以下几点 节省资源 通过虚拟化技

随机推荐

  • Spring Boot将声明日志步骤抽离出来做一个复用类

    上文Spring Boot日志基础使用 设置日志级别中我们写了个比较基本的日志操作 但也随之产生了一个问题 我们这行代码 能不能不写 具体说 我们不希望每个需要日志的类都声明一个在这 看着太不美观了 我们最简单方法当然是继承 我们找个目录创
  • 论python自动化测试(3)- 自动化框架及工具

    python自动化测试 3 自动化框架及工具 1 概述 手续的关于测试的方法论 都是建立在之前的文章里面提到的观点 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到的 测试自动化 也将围绕着 接口自动化 来介绍
  • Linux Common Comment in Practices

    Linux中的命令的确是非常多 但是我们只需要掌握我们最常用的命令就可以了 当然你也可以在使用时去找一下man 他会帮你解决不少的问题 然而每个人玩Linux的目的都不同 所以他们常用的命令也就差异非常大 因为不想在使用是总是东查西找 所以
  • 网络安全等级保护合规一览

    公众号关注 WeiyiGeek 将我设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 0x00 前言 0x01 等保2 0基本要求 0x02 等保定级 1 定级流程 2 定级比较 3 定级通用要求 0x03 合规流程 0
  • 自动化平台搭建之定制log系统

    log系统概述 我们搭建的自动化平台 无论是Web和Android 都少不了一个重要的模块 那就是log输出模块 该模块记录了整个自动化平台运行期间的日志记录 完成自动化测试后 我们可以通过日志追踪和分析fail项 根据自动化平台log输出
  • Intellj IDEA基础设置

    基础配置 view toolbar 配置jdk configure project defaults project structure new jdk 路径 添加插件 configure plugins 配置jvm内存 configure
  • Bootstrap的CSS类积累学习

    要看哪个的介绍 搜索关键词就行了 001 container 这是Bootstrap中定义的一个CSS类 它用于创建一个具有固定宽度的容器 比如 container类将 div 元素包装成一个固定宽度的容器 详情见 https blog c
  • STL vector的N种构造方式

    1 使用默认无参的构造函数进行构造 vector
  • 设计一算法,将已建立的单链表进行逆置

    单链表逆序有很多种方法 可是好多种方法都是逆序后就不能再使用之前定义的函数了 因为你的头结点变动了 不再是之前所定义的first或是head了 所以之前的方法都要重写 后来我终于想到了种很好的方法了 为了不重开空间 我们可以就在原来的那个单
  • leetcode:37. 解数独

    题目链接 37 解数独 文章目录 题目描述 思路 代码 题目描述 编写一个程序 通过填充空格来解决数独问题 数独的解法需 遵循如下规则 数字 1 9 在每一行只能出现一次 数字 1 9 在每一列只能出现一次 数字 1 9 在每一个以粗实线分
  • git lfs搭建 —— ubuntu20.04

    一直使用git lab 临时需要放一些pdf文档但有不需要git来版本管理 个人感觉比较占用资源 百度了一通 决定用git lfs 同时发现git lab有内置lfs使用说明 结合网上查得 总结如下 也是个人操作留档 本人使用vscode
  • 学生的姓名 ,年龄,性别,班级及爱好IDEA代码

    学生的姓名 年龄 性别 班级及爱好AIDE代码 package zy 学生类 class Person 属性 姓名 年龄 性别 班级 爱好 String name 姓名 int age 年龄 String sex 性别 int classN
  • 【数据结构】LoopQueue 循环队列

    数据结构源码 接口 public interface Queue
  • yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get

    yarn安装依赖包报错 error An unexpected error occurred https registry npm taobao orgnpm element ui getaddrinfo ENOTFOUND registr
  • NAT(网络地址转换协议)

    目录 NAT 网络地址转换协议 作用 NAT转换内部地址范围 主要应用方向 NAT的优点 实验 1 静态NAT 一个内网地址对一个公网地址 2 动态NAT PAT 多个内网地址对多个公网地址 3 Easy ip 多个内网地址对一个接口 4
  • shell脚本实战:linux系统初始化和mysql8.0编译安装

    linux系统初始化脚本 bin bash version v1 author xingdian cat lt lt eof a 关闭防火墙 b 关闭selinux c 网络连通性检测 d 配置yum仓库 q 退出 eof read p 请
  • STM32 USB声卡录音(USB Microphone),基于CubeMX修改

    目录 说明 CubeMX配置 Pinout Clock Configuration Configuration 工程设置 代码工程修改 修改USB设备描述符 修改数据传输配置 声卡测试 说明 CubeMX生成的USB Audio Devic
  • Openwrt下安装Python3.5运行出现异常:Fatal Python error: Py_Initialize: Unable to get the locale encoding

    环境说明 Openwrt Python 3 5 依赖的库 libbz2 expat libopenssl libpthread zlib libffi libcrypto libncurses libpanel 使用说明 之前已经安装过py
  • OpenCV人脸识别

    OpenCV人脸识别与口罩检测 下载文件 人脸检测 人脸检测的检测方法主要有两类 基于知识 根据眼睛 眉毛 嘴巴 鼻子等器官特征及相互几何位置关系来检测 和基于统计 将人脸看作一个二维像素矩阵 通过大量人脸图像样本构造人脸模式空间 由相似度
  • kafka进阶

    kafka进阶 初识kafka 生产者 消费者 主题与分区 springboot kafka 集群 监控 面试题 初识kafka 消息队列 分布式发布 订阅消息系统 日志处理 基础架构 Producer 消息生产者 向Kafka中发布消息的