zoukankan      html  css  js  c++  java
  • 消息中间件

    简介:
    Message MiddleWare
    消息中间件是在消息的传递过程中保存消息的容器。
    消息中间件再将消息从它的源中继到它的目标时,充当中间人的作用。
    
    消息包括:订单信息等,需要消费者处理的东西
    
    特点:
    1)异步处理模式  发送者发送消息而无需等待响应。消息发送者将消息发送到一条虚拟的通道上,消息接受者则订阅或监听该通道。
                     一条消息可能最终转发给一个或者多个消息接收者,这些消息接收者无需对消息发送者做出同步回应。整个过程是异步的
    2)松耦合 发送者和接受者不必了解对方 只需要确认消息
    					发送者和接受者不必同时在线
    
    消息传递服务模型:
    
    点对点模型PTP:点对点模型用于生产者消费者之间的点到点的通信  队列消息可放在内存中也可以是持久的。
    					 特性:1)只有一个消费者
    					 			 2)没有时间依赖
    					 			 3)接受者确认消息和接收处理请求
    				 			 
    发布-订阅模型Pub-Sub:TOPIC 订阅者发布者模型支持向一个特定的消息主题生产消息
    				特性:1)每个消息可以有多个订阅者
    							2)订阅后才能接收到消息
    							3)持久订阅和非持久订阅(持久订阅:订阅方重启后,发布方会重新发消息给订阅方,互联网公司常用。比如支付场景,要求强一致性的业务。
    																		 非持久订阅:重启后,不会重新发消息,通知消息,一致性要求不高)
    					    4)时间依赖 只有建立订阅关系才能接受消息
    					    5)持久订阅:关系建立后,消息不会消失,不管订阅者是否在线
    					    6)非持久订阅:订阅者为了接受消息,必须一直在线
            
    消息中间件过程:
    
    应用程序A--消息中间件接口--发送队列--通道代理--网络--通道代理--接收队列--消息中间件接口--应用程序B
    
     																					SUB1(订阅-->确认)      缓存      (L2 cache)                  
     																					SUB2     	               论坛                  
      PUB(用户信息更新)  主题A-->(投递)
      																				SUB3       
     																					SUB4      			         热点数据缓存		(L1 cache)
     																					
     																		
    互联网消息中间件应用场景:
    1、网站用户注册、用户密码找回
    	 填写注册信息-->用户注册服务-->消息中间件-->邮件服务
    	                                         -->短信服务
    	 PUB-SUB模式  持久订阅(短信服务:设置30分钟有效时间)
    2、把日志进行集中收集,用于计算PV、用户行为分析(消息中间件进行缓冲、收集(监控网络、负载)、存储的角色)
       后台进行数据分析(恶意刷单人)。
    3、数据复制案例:
    4、压测:1)把消息中间件当做可靠的消息暂存地
    				 2)定时消息投递,模拟用户访问,进行系统性能压测
    5、消息广播:1)缓存数据同步更新
    						 2)往应用推送数据(发布订阅模式  持久化订阅)  比如更新本地数据:
    						   												cache
    						 数据变更-->消息中间件    cache
                                          cache
    
    
    分类:
    

      

    简介:Message MiddleWare消息中间件是在消息的传递过程中保存消息的容器。消息中间件再将消息从它的源中继到它的目标时,充当中间人的作用。
    消息包括:订单信息等,需要消费者处理的东西
    特点:1)异步处理模式  发送者发送消息而无需等待响应。消息发送者将消息发送到一条虚拟的通道上,消息接受者则订阅或监听该通道。                 一条消息可能最终转发给一个或者多个消息接收者,这些消息接收者无需对消息发送者做出同步回应。整个过程是异步的2)松耦合 发送者和接受者不必了解对方 只需要确认消息发送者和接受者不必同时在线
    消息传递服务模型:
    点对点模型PTP:点对点模型用于生产者消费者之间的点到点的通信  队列消息可放在内存中也可以是持久的。 特性:1)只有一个消费者 2)没有时间依赖 3)接受者确认消息和接收处理请求  发布-订阅模型Pub-Sub:TOPIC 订阅者发布者模型支持向一个特定的消息主题生产消息特性:1)每个消息可以有多个订阅者2)订阅后才能接收到消息3)持久订阅和非持久订阅(持久订阅:订阅方重启后,发布方会重新发消息给订阅方,互联网公司常用。比如支付场景,要求强一致性的业务。 非持久订阅:重启后,不会重新发消息,通知消息,一致性要求不高)    4)时间依赖 只有建立订阅关系才能接受消息    5)持久订阅:关系建立后,消息不会消失,不管订阅者是否在线    6)非持久订阅:订阅者为了接受消息,必须一直在线        消息中间件过程:
    应用程序A--消息中间件接口--发送队列--通道代理--网络--通道代理--接收队列--消息中间件接口--应用程序B
     SUB1(订阅-->确认)      缓存      (L2 cache)                   SUB2                   论坛                    PUB(用户信息更新)  主题A-->(投递)  SUB3        SUB4               热点数据缓存(L1 cache)  互联网消息中间件应用场景:1、网站用户注册、用户密码找回 填写注册信息-->用户注册服务-->消息中间件-->邮件服务                                         -->短信服务 PUB-SUB模式  持久订阅(短信服务:设置30分钟有效时间)2、把日志进行集中收集,用于计算PV、用户行为分析(消息中间件进行缓冲、收集(监控网络、负载)、存储的角色)   后台进行数据分析(恶意刷单人)。3、数据复制案例:4、压测:1)把消息中间件当做可靠的消息暂存地 2)定时消息投递,模拟用户访问,进行系统性能压测5、消息广播:1)缓存数据同步更新 2)往应用推送数据(发布订阅模式  持久化订阅)  比如更新本地数据:   cache 数据变更-->消息中间件    cache                                      cache

    分类:

  • 相关阅读:
    易股(私募) 笔试
    TinyWS
    重载 隐藏 重写(覆盖)
    vector emplace_back() 和push_back() 的区别
    std::ref 和 std::cref 的使用
    网络 I/O复用模式之select、poll、epoll
    网络I/O中 同步/异步 阻塞/非阻塞 概念
    git 使用方法 (reset merge rebase stash diff等)
    C++11 thread用法
    C++中 锁的使用 互斥锁:std::mutex std::lock_guard std::unique_lock ,读写锁使用shared_mutex ,条件变量使用std::condition_variable类
  • 原文地址:https://www.cnblogs.com/wanyp/p/7092193.html
Copyright © 2011-2022 走看看