当前位置: 首页 > news >正文

建网页还是网站好江苏省建设厅副厅长网站

建网页还是网站好,江苏省建设厅副厅长网站,深圳app搭建,成片1卡2卡三卡4卡消息队列 在认识rabbitMQ之前,我们需要先认识下消息队列。 消息队列,一般简称为MQ(Message Queue)。先不管消息(Message)这个词,先看看队列(Queue)。 队列就是一种先进先出的数据结构。 所以消息队列可以简单理解为&a…

141ba7739b0f4cc68bdddbdc10340f06.jpg

 

消息队列

在认识rabbitMQ之前,我们需要先认识下消息队列。

 

消息队列,一般简称为MQ(Message Queue)。先不管消息(Message)这个词,先看看队列(Queue)。

 

队列就是一种先进先出的数据结构。

 

 

 

所以消息队列可以简单理解为:把要传输的数据放在队列中。

 

 

 

科普:

 

把数据放到消息队列叫做生产者

从消息队列里边取数据叫做消费者

为什么要用MQ

MQ可通过消息的收发,使多个系统之间不局限于同步调用,通过异步调用更好地实现解耦,流量削峰等。下面是几个常见的应用场景,帮助我们对MQ有一个简单的认识。

 

异步处理

引入MQ后,通过异步处理将响应时间减少至原先的1/3

 

 

 

 

 

 

 

应用解耦

场景:双11是购物狂节,用户下单后,订单系统需要通知库存系统,传统的做法就是订单系统调用库存系统的接口

 

 

 

缺点:

 

当库存系统出现故障时,订单就会失败。(这样马云将少赚好多好多钱^ ^)

订单系统和库存系统高耦合.

 

 

引入消息队列后:

 

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

库存系统:订阅下单的消息,获取下单消息,进行库操作。就算库存系统出现故障,消息队列也能保证消息的可靠投递,不会导致消息丢失(马云这下高兴了).

流量削峰

流量削峰一般在秒杀活动中应用广泛

 

场景:秒杀活动,一般会因为流量过大,导致应用挂掉。比如业务系统每秒只能处理1000个请求,但是一下子来了5000个请求,那系统就崩了。为了解决这个问题,一般会将用户请求加入消息队列。

 

引入消息队列后:

 

1.用户的请求,服务器收到之后,首先写入消息队列,加入消息队列长度超过最大值,则直接抛弃用户请求或跳转到错误页面.

 

2.秒杀业务根据消息队列中的请求信息,再做后续处理。避免系统崩溃。

 

 

 

使用MQ要考虑什么问题

熟悉后端编程的同学都知道,python,java都有自己的队列函数。比如python的Queue.LifoQueue,Queue.PriorityQueue 。那为啥还要用RabbitMQ这种消息队列中间件呢?

 

1.高可用

无论是我们使用消息队列来做解耦、异步还是削峰,消息队列肯定不能是单机的。万一这台机器挂了,那我们整个系统几乎就是不可用了。所以,当我们项目中使用消息队列,都是得集群/分布式的。要做集群/分布式就必然希望该消息队列能够提供现成的支持,而不是自己写代码手动去实现。

 

2. 数据丢失问题

A系统将数据写到消息队列上,系统B和C还没来得及取消息队列的数据,就挂掉了。如果没有做任何的措施,我们的数据就丢了。

 

3.消费者怎么得到消息队列的消息

两种方法:

 

生产者将数据放到消息队列中,消息队列有数据了,主动叫消费者去拿(俗称push)

 

消费者不断去轮训消息队列,看看有没有新的数据,如果有就消费(俗称pull)

 

4.其他

除了这些,我们在使用的时候还得考虑各种的问题:

 

消息重复消费了怎么办啊?

我想保证消息是绝对有顺序的怎么做?

……..

基于这些问题,市面上涌现了很多消息队列的中间件。这些MQ中间件几乎都解决了上面的问题,但也存在差异。

 

常见的MQ产品

这里有一个简介:

 

ActiveMQ:基于JMS,Apache

RocketMQ:(Rocket,火箭)阿里巴巴的产品,基于JMS,目前由Apache维护

Kafka:分布式消息系统,亮点:吞吐量超级高,每秒中数十万的并发。

RabbitMQ:由erlang语言开发,基于AMQP协议,在erlang语言特性的加持下,RabbitMQ稳定性要比其他的MQ产品好一些,而且erlang语言本身是面向高并发的编程的语言,所以RabbitMQ速度也非常快。且它基于AMQP协议,对分布式、微服务更友好。

科普:

 

AMQP协议:即Advanced Message Queuing Protocol,是一个应用层标准高级消息队列协议,提供统一消息服务。是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

http://www.yayakq.cn/news/202125/

相关文章:

  • 做网站可以参考的网站哈尔滨网站seo
  • 贵州城乡住房建设部网站深圳宝安区房价多少钱一平方
  • vs做网站加背景郑州seo顾问培训
  • 学做网站应该看那些书深圳做网站建设的哪家效果好又便宜
  • 可以做代发货源的网站网站开发团队需配备什么岗位
  • 鑫迪建站系统中铁建设集团官网登录
  • 做网站都需要哪些软件学校 网站建设招聘
  • 制作购物网站需要多少钱站长工具关键词排名怎么查
  • 平台式网站宁波谷歌seo推广
  • vue门户网站模板凤台县美丽乡村建设网站
  • 杭州网站建设招聘深圳装修网站建设
  • 城乡建设部统计网站成都建设网站的公司有哪些
  • 内江市建设教育培训官方网站cms系统排名
  • 律师怎么做网站wordpress 后台图标
  • 手机网站推荐几个网站建设文字表达
  • 公司做网站 分录个人网站搭建步骤
  • 网站建设移动端怎么做网站促收录
  • 网站栏目的分类上海人才网招聘网最新招聘
  • 网站开发软件最流行建网站哪个公司好
  • 做设备推广的网站网站优化分析
  • 企业级网站开发优化网站教程
  • 网站建设 投资合作恢复原来的网站
  • ASP net网站开发资料详情页设计与制作
  • 百度做网站效果怎么样东道 网站建设
  • 免费用手机制作网站 百度百长沙县星沙人才招聘网
  • 如何搜索网站的内容可以做动态图表的网站
  • 开源网站 做镜像 如何做商丘网络
  • 建设银行企业版网站简单的网站设计多少钱
  • 网站配置系统国内知名互联网公司
  • 网站建设金手指15网站做打火机如何