kafka笔记

本文最后更新于:2022年6月15日 下午

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。

实现高性能,高可用,可伸缩和最终一致性架构。

使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。

kafka是消息队列的一种,那为什么要用消息队列呢?

用消息队列有什么好处呢?

系统之间 解耦

消息队列存放 其他系统所需要的数据,其他系统可能有很多个,可能有的需要,有的不需要,也可能有的系统现在需要,过段时间又不需要了。

系统之间 异步

主系统把 有用的消息或数据 放到消息队列中就可以直接返回了,提高用户体验和吞吐量

用户和系统之间 削峰

多用户,高并发请求,系统处理不过来。

可以 把用户的请求都 放到消息队列中,然后呢,每个系统根据自己能够处理的请求的数量,去MQ中拿请求进行处理。

不过有个问题,就是MQ的消息积压了怎么办?

这就要考虑到消息队列会面临什么问题?

1 高可用

消息队列要分布式部署,也就是要有多台MQ服务器

2 数据丢失问题

系统还没有来得及消费数据,MQ就挂掉了,那如何持久化消息呢?

3 消息重复消费问题

消息积压问题

https://zhuanlan.zhihu.com/p/55712984

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzU4NzA3MTc5Mg==&action=getalbum&album_id=2137264927726764033&scene=173&from_msgid=2247485877&from_itemidx=1&count=3&nolastread=1#wechat_redirect


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!