kafka的简单介绍
1. kafka是apache开源的消息队列
2. 消息队列有什么好处?
- 解耦:在消费者和生产者两端均设置一个相同的接口,两边都实现接口。
防止消费者因为生产者数据量太大,导致访问数据库的次数大大增加,而导致系统崩溃。 - 削峰,峰值处理能力
- 顺序保证,每个topic内部是有序的
- 缓冲:消息队列通过一个缓冲层来帮助任务最高效率的执行(写入队列的处理会尽可能的快),该缓冲有助于控制和优化数据经过系统的速度。
- 异步通信:允许用户把一个消息放入队列,但并不立即处理掉他。想向队列中放入多少消息就放入多少,然后再需要的时候再去处理他们。
3. 常见的消息队列内部实现原理
(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)
点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是如此。
(2)发布/订阅模式(一对多,数据生产后,推送给所有订阅者)
发布订阅模型则是一个基于推送的消息传送模型。发布订阅模型可以有多种不同的订阅者,临时订阅者只在主动监听主题时才接收消息,而持久订阅者则监听主题的所有消息,即使当前订阅者不可用,处于离线状态。
4. Kafka组成
- 生产者producer----生产消息给kafka
- 消费者consumer----消费Kafka中的数据
- broker----一台kafka服务器
- topic主题----生产者生产的数据是给topic的,一个kafka服务器上,可以存在多个topic服务
- partition----topic底层是分区存放数据的
- consumerGroup -----消费者组,可以实现多个消费者处理同一个topic数据
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/16662754.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?