kfk作为消息系统的使用场景

举报
瓷喵 发表于 2018/01/22 10:16:13 2018/01/22
【摘要】 传统的消息有两种模式:队列和发布订阅。队列的优点是允许多个消费者瓜分处理数据,这样可以扩展处理,但是,一旦消息者进程读取后故障了,消息就丢了。而发布和订阅允许你广播数据到多个消费者,由于每个订阅者都订阅了消息,所以没办法缩放处理。Kafka的消费者组的概念结合了队列和发布订阅两种模式的优点。Kafka的模型使得每个Topic都具有队列和发布订阅两种特性。作为队列的时候消费组可以将将消息处理分发到不

传统的消息有两种模式:队列和发布订阅。队列的优点是允许多个消费者瓜分处理数据,这样可以扩展处理,但是,一旦消息者进程读取后故障了,消息就丢了。而发布和订阅允许你广播数据到多个消费者,由于每个订阅者都订阅了消息,所以没办法缩放处理。

Kafka的消费者组的概念结合了队列和发布订阅两种模式的优点。Kafka的模型使得每个Topic都具有队列和发布订阅两种特性。作为队列的时候消费组可以将将消息处理分发到不同的处理器上;作为发布订阅模式的时候,允许将消息广播到不同的消费者组中。

相对于传统的消息系统,Kafka还具有很强的顺序保证机制。传统队列顺序保存消息在Server上,多个消费者从队列中获取并处理消息。尽管在服务器上消息是顺序的,但是由于采用异步的方式分发到消费者,因此到达的顺序就不能保证。消息系统常常通过仅设1个消费者来解决这个问题,但是这意味着没用到并行处理。

kafka通过并行topic的parition提供了顺序保证和负载均衡。每个partition仅由同一个消费者组中的一个消费者消费到。并确保消费者是该partition的唯一消费者,并按顺序消费数据。每个topic有多个分区,则需要对多个消费者做负载均衡,但请注意,相同的消费者组中不能有比分区更多的消费者,否则多出的消费者一直处于空等待,不会收到消息。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。