为何要用Kafka实现消息系统

消息系统非消息队列,Kafka具有消息队列和发布/订阅两种模式,两种传统的消息模式,但重要的是,Kafka同时兼容两种,而且灵活,强大

单独看这两种模式:

队列模式

可以替代MQ的原因,估计也是很多人的第一印象:大数据的MQ,高吞吐的MQ。
一组的Kafka消费者读取一个Kafka Topic, 每条消息只被其中的一个消费者消费一次。这样就能切分数据流由多个消费者实例来进行处理,处理能力水平扩展。

发布/订阅模式

广播模式,一条消息可以广播给所有的消费者,可以实现多个应用的并发加载。

可以说两种模式都不是Kafka独有的,有各种MQ,也有Redis可以进行发布/订阅。其实Kafka取胜点就是大和快:高吞吐和低延迟。因为天生具有分布式特性,通过消费者组的概念每个主题都能同时采用了两种模式(不是常见那种模式A或模式B,而是模式AB),这样既能实现顺序的时间消费,又能支持多实例的处理,还能够确保可水平扩展,高可用。简单说理由,就是“我全都要”。这也是大数据和未来人工智能的一种趋势,专注但必须要突破之前想象的限制。Kafka不能说处处有优势,有时在业务上比传统方法显得“单纯可爱”,但在大和快上更有创造空间。犹如货车和跑车的发动机,并不是量的区别。
另外,相比传统消息系统,kafka有更强的消息序列保证,更适合多实例并发的场景。比如:MQ架构里一个系统挂掉导致消息队列堵塞进而影响其它系统。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,856评论 13 425
  • 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O...
    高广超阅读 13,029评论 8 167
  • 本文转载自http://dataunion.org/?p=9307 背景介绍Kafka简介Kafka是一种分布式的...
    Bottle丶Fish阅读 5,574评论 0 34
  • 幸福很复杂,作为一个论题,迄今为止还没有人能够将它讲的清清楚楚、明明白白。 幸福又很简单,因为即使是那些说不出幸福...
    打开一扇向阳窗阅读 1,363评论 29 37
  • 刚刚我是想打“越努力越觉得自己可悲”,但是打完“越努力”的时候屏幕就自动跳出来“越幸运”。是啊,为什么要大雨天去干...
    派姐姐阅读 183评论 0 0

友情链接更多精彩内容