消息队列 Kafka 初识
★介绍
Kafka是消息队列的一种。一个多分区、多副本并且基于zookeeper协调的分布是消息系统。目前Kafka已经被定位一个分布式流式处理平台,以高吞吐量、可持久化、可水平扩展、支持流处理等多种特性而被广泛使用。
Kafka是一个分布式的发布-订阅消息系统,能够支撑海量的数据传输。再离线和试试的消息处理业务系统中,Kafka都有广泛的应用空间。
Kafka将消息持久化到磁盘中,并对消息进行备份以保证数据安全。
Kafka在保证具有较高数据处理速度的同时,也保证了数据处理的低延迟和零丢失!
★特性
- 高吞吐、低延迟:Kafka每秒可以处理几十万条数据,它的延迟最低只有几毫秒,每个主题可以分多个分区,消费者组对分区进行消费。
- 可扩展性:Kafka集群支持热扩展。
- 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份以防止数据丢失。
- 高容错:允许集群中半数以下的节点出现异常。
- 高并发:支持数千客户端同时读写。
★应用场景
- 日志收集:可以用Kafka手机各种服务的日志,通过Kafka以统一的接口服务方式开放给各种消费者,例如:Hadoop、HBase、Solr等等。
- 消费系统:生产者和消费者解耦合、缓存数据等。
- 用户行为跟踪:Kafka以流的方式计量用户的各种行为,例如浏览网页、搜索和点击等,用于订阅者消费这些信息来实现实时的监控或者同步到hadoop或数据参考做离线数据分析和数据挖掘。
- 集群监控:Kafka记录集群中的各个信息,对各种操作进行集中反馈,比如报警和消息推送。
- 流式处理:比如Spark Streaming和Flink。
★技术优势
- 可伸缩性:Kafka的两个重要特性早就了它的可伸缩性
1.Kafka集群在运行期间可以动态的扩展和伸缩(即可以动态的添加和删除代理),而不需要停机。
2.可以扩展一个Kafka toplc来设置更多的分区,以提高并行度和数据量。
- 容错性和可靠性:Kafka集群模式使用Zookeeper进行协调,且有分区和副本机制,因此可以在某些节点失效时从副本节点恢复并继续运行。
- 吞吐量:能够快速高效地存储和检索数据。
★消息队列的两种方式
- 1.点对点模式(一对一):客户端实时监听消息队列,消费者主动拉取数据,消息收到后消息清除。
- 2.发布/订阅模式(一对多):数据生产后,推送给所有订阅者。
★为什么需要消息队列?
- 解耦
- 冗余
- 扩展性
- 灵活性和峰值处理能力
- 可恢复性
- 顺序保证
- 缓冲
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!