消息队列和Kafka

消息队列(类似于蜂巢柜的功能):异步操作

特点:低耦合,响应时间快,异步削峰限流(在不繁忙的时间段处理再处理任务),系统结构弹性大,易于扩展

kafka

Kafka的主要组件包括:

- Broker:Kafka集群中的单个服务器节点,负责数据存储和处理。

- Topic:消息发布的类别或者主题。

- Partition:每个Topic被划分为多个不同的分区,分区内的数据有序。

- Producer:生产者,负责向Kafka的Topic发送消息。

- Consumer:消费者,负责从Kafka的Topic接收和处理消息。

- Consumer Group:一组消费者的集合,用于实现消费者的负载均衡和故障转移。

- ZooKeeper:Kafka使用ZooKeeper来进行集群管理、协调和元数据存储。

broker是kafka服务器的一个实例,kafka是broker的集群

Topic是逻辑概念,代表某一类信息

partition分区

Replication副本,防止某个broker宕机,为partition创建多个副本,保存数据,一个broker的副本放在不同的broker中

当存在副本时,就会区分Leader、Follower,

Leader:主分片,接收生产者发送的数据,对接消费者消费消息

Follower:仅负责和Leader同步数据

Kafka在工作时,broker、Topic、Partition等都需要在Zookeeper中注册

消息队列和Kafka的区别?

1.存储机制:Kafka是持久化存储,存储在磁盘上;消息队列是存储在内存中

2.实时处理:Kafka是高吞吐、低延迟,适用于实时数据处理;消息队列注重消息传递的可靠性

3.设计模式:Kafka是分布式流媒体平台;而传统消息队列是单个服务器

4.消费模型:Kafka采用发布-订阅模型,可以多个消费者消费同一消息;而传统队列只能一个消息对应一个消费者

Kafka如何保证消息传递的可靠性?

1.持久化

2.复制:创建多个副本,分布在不同区

3.批量发送

4.确认机制

死锁

定义:多个事务访问同一资源,对已有的资源不释放,相互锁定对方的资源,造成的死循环

条件:

互斥(一个线程拿到锁后,其他线程不能用)

请求和保持(尝试获取另外的锁,自己的锁不释放)

不可剥夺(锁只能线程自己释放)

循环等待(相互等待对方释放锁)

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

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

相关文章

线程锁多线程的复习

线程 实现方式3种乐观锁&悲观锁线程池线程池总结 进程:是正在运行的程序 线程:是进程中的单个顺序控制流,是一条执行路径 实现方式3种 1.Thread //步骤一:定义一个继承Thread的类 //步骤二:再定义的类中重写run()方法 //步骤三:创建定义类对象 //步骤四:启动线程 class M…

webpack环境配置

1.首先安装 cross-env npm install cross-env --save-dev 在package.json里面配置 根据不同命令打包 "scripts": {"dev": "cross-env NODE_ENVdevelopment webpack-dev-server --config webpack.config.dev.js","dev:test": "c…

Armv8-M的TrustZone技术之在安全状态和非安全状态之间切换

Armv8-M安全扩展允许在安全和非安全软件之间直接调用。 Armv8-M处理器提供了几条指令来处理状态转换: 下图显示了安全状态转换。 如果入口点的第一条指令是SG且位于非安全可调用内存位置中,则允许从非安全到安全软件的直接API函数调用。 当非安全程序调用安全API时,API通过…

CSS的flex弹性布局

<!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>flex弹性布局</title> <style> /* 加了flex是弹性容器 */ .box{ display: flex; height: 300px; /* justify-content: start; 默认情况 */ /* justify-c…

vue中的vuex

在Windows的应用程序开发中&#xff0c;我们习惯了变量&#xff08;对象&#xff09;声明和使用方式&#xff0c;就是有全局和局部之分&#xff0c;定义好了全局变量&#xff08;对象&#xff09;以后在其他窗体中就可以使用&#xff0c;但是窗体之间的变量&#xff08;对象&am…

20240129收获

今天终于发现《八部金刚功》第五部我一直做的是错的&#xff0c;嗨。这里这个写法非常聪明&#xff0c;创立的数组&#xff0c;以及用obj[key] item[key]这样的写法&#xff0c;这个写法充分展示了js常规写法中只有等号右边会去参与运算&#xff0c;等号左边就是普通的键的写法…

项目实现网页分享QQ空间功能

文章目录 &#x1f412;个人主页&#x1f3c5;Vue项目常用组件模板仓库&#x1f4d6;前言&#xff1a;&#x1f380;源码如下&#xff1a; &#x1f412;个人主页 &#x1f3c5;Vue项目常用组件模板仓库 &#x1f4d6;前言&#xff1a; 本篇博客主要提供“点击转发按钮&#x…

TensorFlow2实战-系列教程9:RNN文本分类1

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 1、文本分类任务 1.1 文本分类 数据集构建&#xff1a;影评数据集进行情感分析&…

笔记 | Clickhouse 命令行连接及查询

在 ClickHouse 中&#xff0c;可以使用命令行客户端执行查询。默认情况下&#xff0c;ClickHouse 的命令行客户端称为 clickhouse-client。下面是一些基本的步骤和示例&#xff0c;用于使用 clickhouse-client 进行查询。 首先&#xff0c;需要确保已经安装了 ClickHouse 服务…

Hana SQL+正则表达式

目录 一、Pre 前言 二、知识点拆解 1&#xff09;case when…then…else 2&#xff09;json_value 函数 拓展资料 3&#xff09;CAST 函数 拓展资料 4) ROUND 函数 5&#xff09;occurences_regexpr 函数 拓展资料 6&#xff09;正则表达式 拓展资料 三、整合分析…

代码随想录算法训练营第三十天|860.柠檬水找零 , 406.根据身高重建队列, 452. 用最少数量的箭引爆气球

60.柠檬水找零 代码随想录 情况一&#xff1a;账单是5&#xff0c;直接收下。 情况二&#xff1a;账单是10&#xff0c;消耗一个5&#xff0c;增加一个10 情况三&#xff1a;账单是20&#xff0c;优先消耗一个10和一个5&#xff0c;如果不够&#xff0c;再消耗三个5 所…

10s 内得到一个干净、开箱即用的 Linux 系统

安装 使用官方脚本安装我的服务器不行 官方脚本 mkdir instantbox && cd $_ bash <(curl -sSL https://raw.githubusercontent.com/instantbox/instantbox/master/init.sh) 下面是我的完整安装过程 mkdir /opt/instantbox cd /opt/instantbox 1.脚本文件 (这个没…

[PHP]严格类型

PHP: 类型声明 - Manual

【学网攻】 第(15)节 -- 标准ACL访问控制列表

系列文章目录 目录 系列文章目录 文章目录 前言 一、ACL(访问控制列表)是什么? 二、实验 1.引入 实验拓扑图 实验配置 测试PC2能否Ping通PC3 配置ACL访问控制 实验验证 PC1 Ping PC3 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认…

python 循环解压 解压多重压缩包

在实际数据中&#xff0c;经常会有压缩包套压缩包的情况&#xff0c;并且有可能出现“zip”压缩包下面套“tar”的可能。 你可以运行后面的代码&#xff0c;来完成自动解压。代码会不断检查folder_a_path 文件夹下是否还有压缩包。目前支持zip、rar、tar、7z等四种格式的压缩文…

@EnableEurekaServer

定义&#xff1a;EnableEurekaServer注解是Spring Cloud中的一个注解&#xff0c;用于将Spring Boot应用程序指定为Eureka服务器。 Eureka服务器是一个服务注册中心&#xff0c;也被称为发现服务器&#xff0c;管理和协调微服务。保存有关所有客户端服务应用程序的信息。 每个…

龙哥风向标 20230321~20230328 GPT拆解

AI领域多家公司发布创新产品 盈利点&#xff1a;利用AI领域多家公司发布创新产品的商机&#xff0c;可以开发针对这些新产品的培训课程或者定制化解决方案&#xff0c;以满足市场对新技术的需求。 操作步骤&#xff1a; 调研各家公司发布的新产品&#xff0c;了解其特点和应…

colorThief+vite+react使用方法

官网: Color Thief npm i --save colorthief 第一种,import载入图片 经过尝试,在vite中,要引入.mjs版本 import ColorThief from colorthief/dist/color-thief.mjs 第一种,通过import载入图片 import aa from /assets/123.jpgconst [resultColor,setResultColor]useState() …

Spring Boot导出EXCEL 文件

主要功能:实现java导出excel到本地 JDK版本&#xff1a;openJDK 20.0.1 依赖pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchem…

Java 面试题之 IO(一)

字节流 文章目录 字节流InputStream&#xff08;字节输入流&#xff09;OutputStream&#xff08;字节输出流&#xff09; 文章来自Java Guide 用于学习如有侵权&#xff0c;立即删除 InputStream&#xff08;字节输入流&#xff09; InputStream用于从源头&#xff08;通常是…