菜单

消息队列的施用场景和宽广的信队列中的较

2018年11月16日 - Java

文章转载致 : 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日志处理利用案例:

转自(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日志处理下案例:转自(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)四部分构成。

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)四有构成。

Storm集群:与OtherApp处于相同级别,采用关的办法消费队列中的多寡


相关文章

发表评论

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

网站地图xml地图