当前位置: 首页 > news >正文

Kafka基础概念

MQ消息中间件

1)总览:

消息中间件

image-20240714140336431


这里我们主要学习的是kafka的基础概念

具体参考黑马头条:https://www.bilibili.com/video/BV1Qs4y1v7x4/?spm_id_from=333.337.search-card.all.click

2)消息中间件对比

image-20240714140432928


image-20240714140555674


3)Kafka介绍

image-20240714140805695


image-20240714140829452


Kafka的安装和配置

image-20240714141258516

安装Kafka之前必须先安装zookeeper

入门:

生产者发送消息

image-20240714141637227

  1. 引入依赖,之后开始编写生成者类ProducerQuickstart
  2. 设置kafka的配置信息
  3. 创建生产者对象
  4. 发送消息
  5. 关闭消息通道

image-20240714142556613

消费者接受消息

image-20240714142635225

**注意:**要制定消费者组 比如这里的group2

  1. 配置kafka的配置信息
  2. 创建消费者对象
  3. 订阅主题
  4. 获取消息

image-20240714143654619

1000ms 等于 每秒去拉取

案例:要求一对一

多个消费者订阅同一个主题,只能有一个消费者收到消息

image-20240714143854234


image-20240714144027619


image-20240714144047716


image-20240714144555395


案例:要求一对多

image-20240714144628056


消费者在不同的组下 并且订阅的是同一个主题即可

分区机制

image-20240714144940677

分区可以理解为存储topic文件的文件夹,发送消息的时候可以给topic制定不同的分区,然topic数据存储在不同的分区下,并且是不同的机器下.

为什么要这样设计?

假如数据量大都存储在一个台服务器上容易崩.这样可以处理更多的数据,不受单台服务器的限制,可以不受限的处理更多的数据

image-20240714145258620


  • 分区策略

image-20240714145316367


image-20240714145547494

  • 偏移量

每一个分区下面都有一个连续自增的数值,去标记消息存储的位置

高可用设计方案

1.集群

image-20240714150929752

kafka集群都是由多个Broker去组成,集群中有一台服务器挂了,其他broker可以对外提供服务的,一个kafka集群是由多个Broker组成

2.备份机制

image-20240714151313006


image-20240714151444300


不同业务选择保证一致性还是可用性

4)生产者-消息发送类型

同步

image-20240714151651402


同步发送消息回存在什么问题?

数据量大的时候消耗时间比较长

异步

image-20240714151708171


image-20240714152026696

5)生产者-参数配置

image-20240714152806729


image-20240714152836722


image-20240714152844378

ack确认者机制

ack配置,消息确认机制


重试机制

image-20240714153343662


消息压缩

默认情况下,消息发送时不会被压缩

image-20240714153413005


6)消费者-消息有序性

image-20240714153746835


消息有序性

image-20240714153844817


image-20240714154027893

如果想要顺序的去处理那么就要在创建topic 的时候只提供一个分区就行.同一个分区下是可以保证顺序的

7)消费者-提交和偏移量

偏移量会记录消息的位置:每一个分区下面都有一个连续自增的数值,去标记消息存储的位置

image-20240714154451431


image-20240714154540101


image-20240714154621560

及时再均衡也可能会出现问题

image-20240714154730389


image-20240714154757858

这都是自动提交偏移量造成的

  • 偏移量提交方式

自动提交,手动提交

image-20240714154858058

同步提交:缺点产生方法的阻塞

image-20240714154945859

异步提交:缺点 没有重试 ,如果同时存在多个异步提交进行重试可能会导致位移的覆盖

image-20240714155028472

同步异步组合提交

image-20240714155243636

如果异步提交产生错误之后我们再用同步的方式去提交偏移量

8)SpringBoot集成kafka收发消息

  • 引入依赖修改配置

image-20240714185213345

重试次数 序列化器

image-20240714185433101

传递消息为对象

image-20240714190335989


image-20240714190411412


image-20240714190630575


image-20240714190714049


image-20240714190749881


http://www.lryc.cn/news/411393.html

相关文章:

  • 【论文阅读笔记】DeepCAD: A Deep Generative Network for Computer-Aided Design Models
  • 《如鸢》开通官号,女性向游戏爆款预定
  • OpenAI再下一城:发布Voice Engine,可使用文本和参考语音合成说话者的新语音!
  • KVM高级功能部署
  • 【C语言】柔性数组(打开前所未见的大门)
  • 设计模式17-适配模式
  • react ant Input defaultValue={value}设置了value值以后,但是defalult没有赋值上,输入框也没有显示
  • 大模型开发如何把一段文字变成一组token?
  • 【MSYS】Windows Terminal 集成
  • Python酷库之旅-第三方库Pandas(056)
  • ZBrush入门使用介绍——4、笔刷选项说明
  • Java每日一练,技术成长不间断
  • 传知代码-上下位关系自动检测方法(论文复现)
  • 从零开始的MicroPython(二) GPIO及代码应用
  • 嵌入式day15
  • 【电池管理系统(BMS)-01】 | 电池管理系统简介,动力电池和储能电池区别
  • C++ STL partial_sum 用法
  • 诚宜开张圣听不应妄自菲薄
  • Vue3 加载条(LoadingBar)
  • 《CSS创意项目实战指南》:点亮网页,从实战中掌握CSS的无限创意
  • [FBCTF2019]RCEService (PCRE回溯绕过和%a0换行绕过)
  • vue3后台管理系统 vue3+vite+pinia+element-plus+axios上
  • Mysql的事务隔离级别实现原理
  • 计算机体系结构:缓存一致性ESI
  • log4j2漏洞练习(未完成)
  • 常见网络攻击方法原理、应用场景和防御方法(一)
  • 【leetcode十分钟】覆盖所有点的最少矩形数目(C++思路详解)
  • 【Vue3】默认插槽
  • 华清day4 24-7-31
  • 搜维尔科技:Manus VR数据手套-适用于机器人、人工智能和机器学习解决方案