Kafka的介绍

文章目录

  • 一、介绍
  • 二、消息队列通信的模式
  • 三、特性
  • 四、使用场景
  • 五、核心概念


一、介绍

  • kafka是一个分布式的发布订阅消息系统
  • 基于Zookeeper协调
  • 最初由Linkedin公司开发,于2010年贡献给了Apache基金会并成为顶级开源项目
  • Kafka的核心是由Scala语言编写,Kafka的客户端库使用Java语言编写

二、消息队列通信的模式

  1. 点对点模式
    • 消息持久化到一个队列中
    • 一个或多个消费者消费队列中的消息,消息只能被消费一次,当一个消费者消费完成一条消息后就会删除该消息
  2. 发布订阅模式
    • 消息被持久化到一个topic中
    • 与点对点消息系统不同的是,消费者可以订阅一个或多个topic,消费者可以消费该topic中所有的数据,同一条数据可以被多个消费者消费,数据被消费后不会立马删除
    • 在发布-订阅消息系统中,消息的生产者称为发布者,消费者称为订阅者

三、特性

  1. 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒
  2. 可扩展性:kafka集群支持热扩展
  3. 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  4. 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
  5. 高并发:支持数千个客户端同时读写

四、使用场景

  1. 日志收集:公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种消费者
  2. 消息系统:解耦生产者和消费者、缓存消息
  3. 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析
  4. 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告

五、核心概念

  1. Broker

    • 1个Broker就是1个kafka节点,多个Broker组成1个kafka集群
    • 每个kafka集群内的Broker都有一个唯一的id:broker.id
  2. Producer

    • 生产者
    • 负责生产消息
  3. Consumer

    • 消费者
    • 负责消费消息
  4. Consumer Group

    • 消费者组
    • 由1个或多个消费者组成
    • 1个Partition的数据只能被消费者组中的某一个消费者消费,不能被组内多个消费者消费。但是1个消费者组的消费者可以消费多个Partition的数据
    • 消费者组内消费者的数量和Partition的关系,例如有3个Partition
      • 1个消费者:该消费者消费所有Partition
      • 2个消费者:1个消费者消费2个Partition,1个消费者消费1个Partition
      • 4个消费者:3个消费者消费3个partition,1个消费者空闲
      • 最优的设计就是消费者组下的消费者数量等于分区数量,效率最高
    • 消费者组之间是相互独立的,互不影响
  5. Topic

    • 消息的主题
    • 可以理解为消息的分类
    • 在每个Broker上可以创建多个topic
    • 用于建立生产者、消费者的订阅关系
  6. Partition

    • 消息分区
    • 是实现横向扩展和高并发的重要设计
    • 每个topic有1个或多个分区,每个分区是一个有序的队列,分区才是真正的存放消息的地方
    • kafka会把topic中的消息均匀的分布在所有的分区,每个分区存放的消息是不一样的。分区可以分布在不同的服务器上,也就是说, 1个topic可以横跨多个服务器,当topic中的消息越来越多,我们可以增加服务器也就是增加新的分区来实现横向扩展
  7. Replication

    • 副本
    • 是消息分区的备份
    • 是kafka实现故障转移,保证高可用的重要设计
    • 每个分区可以有1个或多个副本,副本数量要<=集群中broker的数量
    • 副本有两种类型:
      • leader :每个分区只有1个,负责处理读写请求
      • follower :每个分区有>=0个,不处理客户端的请求,只做备份,所有的follower都会从leader同步消息,保持与leader消息的一致。如果leader发生故障,其中的1个follower会被选举为新的leader
  8. Offset

    • 偏移量
    • 消息在parttion中的位置称为偏移量,是一个从0开始的整数
    • parttion中每新增1个新的消息offset就会递增1,如:1个parttion中,第1条消息的offset=0,第2条消息的offset=1
    • 每个消费者在消费信息后需要提交offset,以此来确定自己消费的进度。可以自动提交也可以手动提交

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

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

相关文章

SpringBoot中导出excel文件

依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency> 代码实现细节 package com.lyh.mp.utils;import com.lyh.mp.entity.User; import org.apache.poi…

OpenAI新爆款Sora,大佬们怎么看?

OpenAI新爆款Sora的热度持续发酵&#xff0c;在科技圈的刷屏阵仗都快赶上正月初五迎财神了。 智东西2月17日报道&#xff0c;这两天&#xff0c;OpenAI首款文生视频大模型Sora以黑马之姿占据AI领域话题中心&#xff0c;马斯克、杨立昆、贾扬清、Jim Fan、谢赛宁、周鸿祎、李志…

【动态规划专栏】专题一:斐波那契数列模型--------2.三步问题

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

Spring Cloud Zuul:API 网关

1. 理解 API 网关 API网关在现代微服务架构中扮演着至关重要的角色。它充当着服务的入口&#xff0c;负责处理外部请求、路由流量、安全认证、监控日志等功能。本节将深入探讨API网关的定义、作用及其在Spring Cloud中的具体实现Spring Cloud Zuul。 1.1 什么是 API 网关 AP…

数据结构-最短路径(Dijkstra算法与Floyd算法)

介绍 对于网图来说&#xff0c;最短路径是指两顶点之间经过的边上权值之和最少的路径&#xff0c;其路径上第一个点记为源点&#xff0c;最后一个为终点。 计算最短路径有两个经典算法&#xff0c;即迪杰斯特拉&#xff08;Dijkstra&#xff09;算法与弗洛伊德&#xff08;Fl…

Class<T> clazz是什么意思

在Java中&#xff0c;Class 是一个泛型类型&#xff0c;它代表一个类对象。T 是一个类型参数&#xff0c;表示这个类对象所代表的具体的类类型。Class 是Java中所有类型元信息的类&#xff0c;包括基本类型、数组、类类型、接口、枚举和注解类型等。 Class 中的 T 允许你指定这…

unity学习(20)——客户端与服务器合力完成注册功能(2)调试注册逻辑

接着上一节的问题&#xff0c;想办法升级成具备数据库功能的服务器&#xff0c;这个是必须的。 至少在初始化要学会把文件转换为session&#xff0c;新知识&#xff0c;有挑战的。 现在是从LoginHandler.cs跳到了AccountBiz.cs的create&#xff0c;跳度还是很大的。 create函…

JS 中的数据代理

所谓数据代理&#xff08;也叫数据劫持&#xff09;&#xff0c;指的是在访问或者修改对象的某个属性时&#xff0c;通过一段代码拦截这个行为&#xff0c;进行额外的操作或者修改返回结果。比较典型的是 Object.defineProperty() 和 ES2015 中新增的 Proxy 对象。另外还有已经…

oauthlib,一个强大的 Python 身份校验库!

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 ​编辑 前言 什么是 OAuthLib&#xff1f; 安装 OAuthLib OAuthLib 的主要功能 OAuthLib 的用法 实现…

kafka安装配置(docker)

Kafka对于zookeeper是强依赖&#xff0c;保存kafka相关的节点数据&#xff0c;所以安装Kafka之前必须先安装zookeeper Docker安装zookeeper 下载镜像&#xff1a; docker pull zookeeper:3.4.14 创建容器 docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14 D…

文案馆头像壁纸微信小程序源码【支持流量主】

文案馆头像壁纸微信小程序源码【支持流量主】 源码介绍&#xff1a;文案馆头像壁纸微信小程序源码是一款可以获取套图、头像、壁纸的小程序。小程序源码内置流量主功能 需求环境&#xff1a;微信小程序phpmysql 下载地址&#xff1a; https://www.changyouzuhao.cn/13453.ht…

【C语言】长篇详解,字符系列篇2-----受长度限制的字符串函数,字符串函数的使用和模拟实现【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本期系列为【【C语言】长篇详解&#xff0c;字符系列篇2-----“混杂”的字符串函数&#xff0c;字符串函数的使用和模拟实现【图文详解】&#xff0c;图文讲解各种字符串函数&#xff0c;带大家更深刻理解C语言中各种字符串函数的应用&#x…

即时设计是什么?

在过去的两年里&#xff0c;由于疫情的推动以及科学技术的不断进步&#xff0c;国内外协同办公室发展迅速。在市场的推动下&#xff0c;市场上出现了越来越多的协同办公软件&#xff0c;使工作场所的工作更加高效。 在设计领域&#xff0c;具有协同功能的软件市场似乎仍处于空…

记一个大坑: 树莓派上docker运行motioneye找不到摄像头

当在树莓派上执行这段命令后&#xff0c;将创建montioneye容器 docker run --name"motioneye" \-p 8765:8765 \--hostname"motioneye" \-v /etc/localtime:/etc/localtime:ro \-v /etc/motioneye:/etc/motioneye \-v /var/lib/motioneye:/var/lib/motione…

七、C数组的介绍

1、前言 C语言中的数据类型包括基本数据类型和复合数据类型。前面介绍的整形、浮点型、字符型都是基本数据类型&#xff0c;而数组属于复合数据类型。 基本数据类型是编程中最基础的数据类型&#xff0c;用于存储简单的数据值。复合数据类型则是由基本数据类型组合而成的数据类…

C# CAD-Xdata数据添加与修改

运行环境Visual Studio 2022 c# cad2016 一、XData&#xff08;扩展数据&#xff09;特定代码值 XData&#xff08;扩展数据&#xff09;特定代码值 XData通过一系列DXF组码&#xff08;DxfCode&#xff09;存储不同类型的数据&#xff0c;包括但不限于ASCII字符串、已注册应…

162基于matlab的多尺度和谱峭度算法对振动信号进行降噪处理

基于matlab的多尺度和谱峭度算法对振动信号进行降噪处理&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;输出多尺度谱峭度及降噪结果。程序已调通&#xff0c;可直接运行。 162 matlab 信号处理 多尺度谱峭度 (xiaohongshu.com)

用Windows桌面应用程序制作一个扫雷游戏

游戏介绍: 这段代码是一个简易版的扫雷游戏的主程序部分。游戏分为几个主要部分: **主函数 (main)**:负责整个游戏流程的控制。首先,它初始化了一个枚举类型的变量 input 用于存储玩家的选择。然后,进入一个循环,在这个循环中,它会显示游戏菜单,接收玩家的输入,并根…

考研英语单词28

Day 28 obscure a.模糊的&#xff0c;不清楚的【vague a.模糊的&#xff0c;不清楚的】 blur “不乐” n.模糊&#xff08;的东西&#xff09; v.变模糊 rough a.粗糙的&#xff0c;艰难的 readily ad.轻易地&#xff0c;乐意地 management n.经营&#xff0c;管理…

实时文字to图:SDXL Turbo 和 LCM-LoRA

参考文章&#xff1a; SDXL Turbo: Real-time Prompting - Stable Diffusion Art 根据目前的实际使用情况 sdxl-turbo 速度更快sdxl 有时候出的人脸会变形