赞
踩
1、解耦:允许我们独立的扩展或修改列两边的处理过程
2、扩展性: 因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。
3、流量削峰:高流量的时候,使用消息队列作为中间件可以将流量的高峰保存在消息队列中,从而防止了系统的高请求,减轻服务器的请求处理压力。
4、可恢复性:即使一个处理消息的进程挂掉,加入队列中的消息仍可以在系统恢复后被处理。
5、顺序保证: 在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。Kafka保证一个Partition内的消息的有序性。
6、缓冲:有助于解决生产消息和消费消息的处理速度不一致的情况
7、异步通信:消息队列允许用户把消息放入队列但不立即处理它
1、以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。
2、高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。
3、支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
4、同时支持离线数据处理和实时数据处理。
5、支持在线水平扩展
描述
注意
图解
传统模式
生产者消费者模式
数据传递流程
生产者消费者模式,即N个线程进行生产,同时N个线程进行消费,两种角色通过内存缓冲区进行通信,
生产者负责向缓冲区里面添加数据单元
消费者负责从缓冲区里面取出数据单元
解耦
支持并发
支持忙闲不均
关联到业务对象
完整性
独立性
颗粒度
在点对点消息系统中,消息持久化到一个队列中。
此时,将有一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次。
当一个消费者消费了队列中的某条数据之后,该条数据则从消息队列中删除。
该模式即使有多个消费者同时消费数据,也能保证数据处理的顺序。
基于推送模型的消息系统,由消息代理记录消费状态。
到底了。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。