【转】消息队列应用场景,消息队列场景

文章转载致 : https://blog.csdn.net/vbirdbest/article/details/78837247

【转】消息队列应用场景,消息队列场景

信息队列中件是分布式系统中重要性之零件,主要解决采取耦合,异步消息,流量削锋等题材

平、消息队列概述

消息队列中件是分布式系统中主要的组件,主要解决采取耦合,异步消息,流量削锋等题材。实现强性能,高可用,可伸缩和尾声一致性架构。是重型分布式系统不可少的中件。

当下在产环境,使用于多之消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。

心想事成高性能,高可用,可伸缩和最后一致性架构

亚、消息队列应用场景

以下介绍消息队列在事实上行使被常用的行使状况。异步处理,应用解耦,流量削锋和信息报道四独场景。

以于多之消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ

2.1异步处理

观说明:用户注册后,需要发注册邮件与挂号短信。传统的做法时有发生零星栽1.串行的点子;2.互相方式。

(1)串行方式:将登记信息写副数据库成功后,发送注册邮件,再发送注册短信。以上三独任务总体完了后,返回给客户端。(架构KKQ:466097527,欢迎加入)

 图片 1

(2)并行方式:将注册信息写副数据库成功后,发送注册邮件的同时,发送注册短信。以上三独任务就后,返回给客户端。与串行的差距是,并行的点子可以增进处理的日子。

 图片 2

如若三个工作节点每个使用50毫秒钟,不考虑网络等任何开支,则串行方式的年月是150毫秒,并行的岁月也许是100毫秒。

坐CPU在单位时间内处理的请数是早晚的,假要CPU1秒内吞吐量是100坏。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10软(1000/100)。

 

总结:如以上案例描述,传统的方系统的特性(并发量,吞吐量,响应时间)会来瓶颈。如何解决是题目为?

引入消息队列,将未是要的事体逻辑,异步处理。改造后底架构如下:

 图片 3

依照上述约定,用户的响应时间一定于是注册信息写副数据库的光阴,也便是50毫秒。注册邮件,发送短信写副消息队列后,直接回,因此写副消息队列的快慢快速,基本可以忽略,因此用户之应时间也许是50毫秒。因此架构改变后,系统的吞吐量提高至每秒20
QPS。比串行提高了3加倍,比并行提高了片倍。

第二、消息队列应用场景

以下介绍消息队列在实质上行使中常用之运用状况。异步处理,应用解耦,流量削锋和信报道四个场景

2.2行使解耦

状况说明:用户下单后,订单系统要通知库存系统。传统的做法是,订单系统调用库存系统的接口。如下图:(架构KKQ:466097527,欢迎加入)

 图片 4

传统模式的欠缺:

1)  假如库存系统无法访问,则订单减库存将破产,从而致使订单失败;

2)  订单系统及库存系统耦合;

怎么化解上述问题吧?引入应用信息队列后底方案,如下图:

 图片 5

  • 订单系统:用户下单后,订单系统完成持久化处理,将信息写副消息队列,返回用户订单下才成功。
  • 库存系统:订阅下单的音讯,采用拉/推的法子,获取下只有信息,库存系统根据下单信息,进行库存操作。
  • 一经:在下单时库存系统不能够健康下。也未影响健康下仅仅,因为下单后,订单系统写副消息队列就不再关心其他的继续操作了。实现订单系统与库存系统的利用解耦。

2.1异步处理

状况说明:用户注册后,需要发注册邮件和挂号短信。传统的做法来星星点点栽
1.串行的办法;2.彼此方式

(1)串行方式:将报信息写副数据库成功后,发送注册邮件,再发送注册短信。以上三独任务尽完了后,返回给客户端

 图片 6

(2)并行方式:将登记信息写副数据库成功后,发送注册邮件的以,发送注册短信。以上三只任务就后,返回给客户端。与串行的别是,并行的办法可提高处理的工夫

 图片 7

如若三个事情节点每个使用50毫秒钟,不考虑网络等其它开发,则串行方式的流年是150毫秒,并行的年月可能是100毫秒。

因为CPU在单位时间外处理的请数是肯定的,假要CPU1秒内吞吐量是100不好。则串行方式1秒内CPU可处理的请求量是7不行(1000/150)。并行方式处理的请求量是10不善(1000/100)

总:如以上案例描述,传统的章程系统的性能(并发量,吞吐量,响应时间)会产生瓶颈。如何缓解者题材吗?

引入消息队列,将未是须的事情逻辑,异步处理。改造后底架构如下:

 图片 8

遵照上述约定,用户的响应时间相当于是注册信息写副数据库的日子,也就是50毫秒。注册邮件,发送短信写副消息队列后,直接回,因此写副消息队列的快慢迅速,基本得以忽略,因此用户的响应时间或许是50毫秒。因此架构改变后,系统的吞吐量提高至各国秒20
QPS。比串行提高了3倍增,比并行提高了点滴倍

2.3流量削锋

流量削锋也是信队列中之常用场景,一般在秒杀或团抢活动受到应用大规模。

利用场景:秒杀活动,一般会因为流量过很,导致流量暴增,应用挂掉。为釜底抽薪这题目,一般要在使用前端加入消息队列。

 图片 9

2.2下解耦

场面说明:用户下单后,订单系统要通知库存系统。传统的做法是,订单系统调用库存系统的接口。如下图

 图片 10

传统模式的败笔:

  • 假定库存系统无法访问,则订单减库存将砸,从而造成订单失败

  • 订单系统与库存系统耦合

怎么化解上述问题吧?引入应用信息队列后底方案,如下图:

 图片 11

  • 订单系统:用户下单后,订单系统就持久化处理,将消息写副消息队列,返回用户订单下单成功

  • 库存系统:订阅下单的信,采用拉/推的法子,获取下仅仅信息,库存系统基于下单信息,进行库存操作

  • 若果:在下单时库存系统不能够健康使用。也不影响正常下就,因为下单后,订单系统描绘副消息队列就不再关心其他的累操作了。实现订单系统与库存系统的用解耦

2.4日记处理

日记处理是依赖以消息队列用在日记处理着,比如Kafka的采取,解决大气日志传输的问题。架构简化如下:(架构KKQ:466097527,欢迎加入)

 图片 12

  • 日记采集客户端,负责日志数据搜集,定时写为写副Kafka队列;
  • Kafka消息队列,负责日志数据的收到,存储和中转;
  • 日记处理利用:订阅并花费kafka队列中的日记数据;

以下是新浪kafka日志处理利用案例:

转自(http://cloud.51cto.com/art/201507/484338.htm)

 图片 13

(1)Kafka:接收用户日志的消息队列。

(2)Logstash:做日志解析,统一成JSON输出为Elasticsearch。

(3)Elasticsearch:实时日记分析服务的核心技术,一个schemaless,实时的数据存储服务,通过index组织数量,兼具强大的寻和统计功能。

(4)Kibana:基于Elasticsearch的数目可视化组件,超强之数码可视化能力是众多号选择ELK
stack的关键原由。

2.3流量削锋

流量削锋也是信息队列中之常用场景,一般在秒杀或团抢活动受到使大

使用场景:秒杀活动,一般会因流量过十分,导致流量暴增,应用挂掉。为釜底抽薪是题材,一般需以利用前端加入消息队列。

  • 足操纵移动之总人口

  • 得解决短日内高流量压垮应用

 图片 14

  • 用户的恳求,服务器收到后,首先写副消息队列。假如消息队列长度超过最老数目,则直丢掉用户请求或超反至左页面

  • 秒杀业务根据信队列中之乞求信息,再开继续处理

2.5消息报道

消息报道是恃,消息队列一般都坐了迅猛的通信机制,因此呢得就此当纯的信息报道。比如实现点对碰信息队列,或者聊天室等。

点对碰通讯:

 图片 15

客户端A和客户端B使用同一队列,进行信息报道。

聊天室通讯:

 图片 16

客户端A,客户端B,客户端N订阅同一主题,进行信息披露以及接到。实现类似聊天室效果。

如上实际是信息队列的片栽信息模式,点对点要宣布订阅模式。模型呢示意图,供参考。

2.4日记处理

日志处理是凭用信息队列用当日记处理面临,比如Kafka的使,解决大气日记传输的题材。架构简化如下

 图片 17

  • 日记采集客户端,负责日志数据搜集,定时写为写副Kafka队列

  • Kafka消息队列,负责日志数据的收到,存储和转账

  • 日记处理下:订阅并花费kafka队列中的日志数据

以下是新浪kafka日志处理利用案例:转自(http://cloud.51cto.com/art/201507/484338.htm)

 图片 18

(1)Kafka:接收用户日志的消息队列

(2)Logstash:做日志解析,统一成JSON输出为Elasticsearch

(3)Elasticsearch:实时日记分析服务之核心技术,一个schemaless,实时的数存储服务,通过index组织数量,兼具强大的查找和统计功能

(4)Kibana:基于Elasticsearch的多少可视化组件,超强的多寡可视化能力是群店铺选择ELK
stack的首要原由

其三、消息中间件示例

2.5信息报道

信息报道是据,消息队列一般都放到了快捷的通信机制,因此呢得以据此当纯的音讯报道。比如实现点对碰消息队列,或者聊天室等

接触对碰通讯:

 图片 19

客户端A和客户端B使用同一队列,进行信息报道。

聊天室通讯:

 图片 20

客户端A,客户端B,客户端N订阅同一主题,进行信息宣布与接纳。实现类似聊天室效果。

上述实际是信队列的一定量种植信息模式,点对点或发布订阅模式。模型呢示意图,供参考。

3.1电商系统

 图片 21

消息队列采用高可用,可持久化的消息中间件。比如Active MQ,Rabbit
MQ,Rocket
Mq。(1)应用将核心逻辑处理就后,写副消息队列。消息发送是否成足以拉开消息的肯定模式。(消息队列返回消息接收成功状态后,应用还返回,这样保持信息之完整性)

(2)扩展流程(发短信,配送处理)订阅队列消息。采用推或牵涉的法门取信息并处理。

(3)消息将运解耦的还要,带来了数额一致性问题,可以下末段一致性方式化解。比如主数据形容副数据库,扩展应用根据消息队列,并结合数据库方式贯彻冲消息队列的接续处理。

老三、消息中间件示例

3.2日记收集体系

 图片 22

分成Zookeeper注册中心,日志收集客户端,Kafka集群和Storm集群(OtherApp)四片组成。

  • Zookeeper注册中心,提出负载均衡和地址查找服务;
  • 日志收集客户端,用于采集利用体系的日记,并以数据推送到kafka队列;
  • Kafka集群:接收,路由,存储,转发等消息处理;

Storm集群:与OtherApp处于同一级别,采用关的措施消费队列中之数据;

 

原:http://www.cnblogs.com/itfly8/p/5155983.html

http://www.bkjia.com/Javabc/1229389.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javabc/1229389.htmlTechArticle【转】消息队列应用场景,消息队列场景
一、消息队列概述
消息队列中件是分布式系统中要的组件,主要解决采取耦合,异步消息,…

3.1电商系统

 图片 23

消息队列采用大可用,可持久化的消息中间件。比如Active MQ,Rabbit
MQ,Rocket Mq。

(1)应用将主导逻辑处理完了后,写副消息队列。消息发送是否成功可以敞开消息之认同模式。(消息队列返回消息接收成功状态后,应用还回到,这样保持信息的完整性)

(2)扩展流程(发短信,配送处理)订阅队列消息。采用推或牵涉的法子获取信息并拍卖。

(3)消息将以解耦的同时,带来了数码一致性问题,可以采用末段一致性方式解决。比如主数据形容副数据库,扩展应用根据信队列,并结成数据库方式实现基于消息队列的继承处理。

3.2日记收集体系

 图片 24

分成Zookeeper注册中心,日志收集客户端,Kafka集群和Storm集群(OtherApp)四片段构成。

  • Zookeeper注册中心,提出负载均衡和地方查找服务

  • 日志收集客户端,用于收集利用体系的日记,并将数据推送到kafka队列

  • Kafka集群:接收,路由,存储,转发等消息处理

Storm集群:与OtherApp处于同一级别,采用关的方消费队列中之数据


发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图