标签:
之前做日志收集模块时,用到flume。另外也有的方案,集成kafaka来提升系统可扩展性,其中涉及到消息队列
当时自己并不清楚为什么要使用消息队列。
而在我自己提出的原始日志采集方案中不适用消息队列
时,有几个基本问题:1. 日志文件上传过程,有个基本的生产者-消费者
问题;2. 另外系统崩溃时,数据丢失的处理问题。
今天,几位同事再次谈到消息队列
这么个东西,很NB的样子,我也想弄清楚,OK,搞起。
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message
而已。其主要用途:不同进程Process/线程Thread之间通信。为什么会产生消息队列
?这个问题问的好,我大概查了一下,没有查到最初产生消息队列的背景,但我猜测可能几个原因:
消息队列
来传递,单独修改某一个进程,不会影响另一个;消息队列
; 不管到底是什么原因催生了消息队列
,总之,上面两个猜测是其实际应用的典型场景。
切合前一部分猜测的消息队列
产生背景,其主要解决两个问题:
下面针对系统解耦、消息缓存两点,来分析实际应用消息队列
过程中,可能遇到的问题。虚拟场景:Process_A通过消息队列MQ_1向Process_B传递消息,几个问题:
不要着急,阅读了下面的简要介绍后,水到渠成,上面几个问题就可以解决了。 消息队列有如下几个好处,这大都是由其系统解耦和消息缓存两点扩展而来的:
put-get-delete
模式,即,仅当确认message被完成处理之后,才从MQ中移除message;消息队列
却能够平滑峰值流量,缓解系统组件的峰值压力;标签:
原文地址:http://www.cnblogs.com/w10234/p/5433676.html