kfk作为消息系统的使用场景
【摘要】 传统的消息有两种模式:队列和发布订阅。队列的优点是允许多个消费者瓜分处理数据,这样可以扩展处理,但是,一旦消息者进程读取后故障了,消息就丢了。而发布和订阅允许你广播数据到多个消费者,由于每个订阅者都订阅了消息,所以没办法缩放处理。Kafka的消费者组的概念结合了队列和发布订阅两种模式的优点。Kafka的模型使得每个Topic都具有队列和发布订阅两种特性。作为队列的时候消费组可以将将消息处理分发到不
传统的消息有两种模式:队列和发布订阅。队列的优点是允许多个消费者瓜分处理数据,这样可以扩展处理,但是,一旦消息者进程读取后故障了,消息就丢了。而发布和订阅允许你广播数据到多个消费者,由于每个订阅者都订阅了消息,所以没办法缩放处理。
Kafka的消费者组的概念结合了队列和发布订阅两种模式的优点。Kafka的模型使得每个Topic都具有队列和发布订阅两种特性。作为队列的时候消费组可以将将消息处理分发到不同的处理器上;作为发布订阅模式的时候,允许将消息广播到不同的消费者组中。
相对于传统的消息系统,Kafka还具有很强的顺序保证机制。传统队列顺序保存消息在Server上,多个消费者从队列中获取并处理消息。尽管在服务器上消息是顺序的,但是由于采用异步的方式分发到消费者,因此到达的顺序就不能保证。消息系统常常通过仅设1个消费者来解决这个问题,但是这意味着没用到并行处理。
kafka通过并行topic的parition提供了顺序保证和负载均衡。每个partition仅由同一个消费者组中的一个消费者消费到。并确保消费者是该partition的唯一消费者,并按顺序消费数据。每个topic有多个分区,则需要对多个消费者做负载均衡,但请注意,相同的消费者组中不能有比分区更多的消费者,否则多出的消费者一直处于空等待,不会收到消息。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)