网站开发 教学大纲,seo网站外包,湘潭网站建设企业,天迈装饰网站建设项目MQ理论
队列#xff0c;是一种FIFO 先进先出的数据结构。消息#xff1a;在不同应用程序之间传递的数据。将消息以队列的形式存储起来#xff0c;并且在不同的应用程序之间进行传递#xff0c;这就成了MessageQueue。MQ通常三大作用#xff1a; 异步、解耦、限流
Spring…MQ理论
队列是一种FIFO 先进先出的数据结构。消息在不同应用程序之间传递的数据。将消息以队列的形式存储起来并且在不同的应用程序之间进行传递这就成了MessageQueue。MQ通常三大作用 异步、解耦、限流
Spring的事件发布机制有类似的功能、如创建监听ApplicationEvent的监听器、容器启动过程中、会发布多个ApplicationEvent 监听器探测到后处理具体模型如下 AppContext为Producer, Event为Message、 Listener为consumer;Producer和Consumer他们的运行状况互不干涉没有ConsumerProducer一样正常运行反过来也一样。也就是说推送Producer和Consumer正常工作的只有发布的这些事件。这种方式就称为事件驱动
SpringBoot会将自己应用过程中发生的每一个重要的运行步骤都通过事件发送出来,全都在一个内部服务进程内 若是想搭建监控中心、监控多个SpringBoot应用的运行信息 因为跨服务、无法通过SpringBoot事件机制完成、所以需要一个中间服务、负责转发接收和转发这些SpringBoot的应用信息 需要满足
应用AppContext和监控服务是全解耦、即应用或者监控挂了都不影响对方应用AppContext与监控服务解耦、即应用只需发消息给消息服务消息服务要协调控制流量、起限流作用即应用可能一瞬间发海量消息、也可能不发消息、消息服务要控制这些消息、不会同一时刻发给监控服务海量消息内存爆了因此消息服务需要存储这些消息、让监控服务按照自己能力慢慢消费、起削峰限流作用
引入消息服务衍生问题
分布式、微服务下是不允许存在单点故障的需要保证消息服务高可用(搭建集群)系统复杂度变更消息安全性问题海量数据如何保存如何不丢失如何避免重复消息都等
常见消息中间件有RabbitMQ、RocketMQ、 Kafka;