码迷,mamicode.com
首页 > 其他好文 > 详细

小白程序要进阶系列之RabbitMQ-前言

时间:2017-09-17 15:49:24      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:中间   方式   支持   交流   erlang   客户   lin   订阅   持久化   

什么是RabbitMQ

RabbitMQ是一个开源的AMQP(Advanced Message Queuing Protocol,高级消息队列协议)实现,是可复用的企业级消息系统。服务器端使用Erlang语言编写,支持几乎所有常见的开发平台如:Python、Ruby、.NET、Java、C、PHP、Go、Perl、Erlang、Node.js、object-c\swift、ruby等。

消息队列最基本的功能就是为了实现在不同系统或者组件间安全、可靠的存储和转发消息。而RabbitMQ是当前最流行的消息中间件之一,支持大部分主流的操作系统。

RabbitMQ应用场景

异步处理
场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种
串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种做法让客户端没有必要的等待。

并行方式:将注册信息写入数据库后,发送邮件的同时,发送短信,以上三个任务完成后,返回给客户端,并行的方式能提高处理的时间。

引入消息队列后,把发送邮件,短信不是必须的业务逻辑异步处理,耗时可以忽略不计,有效提高响应速度。

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

这种做法有一个缺点,订单系统和库存系统高耦合。

使用消息队列

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

库存系统:订阅下单的消息,获取下单消息,进行库操作。


流量削峰

场景:流量削峰一般在秒杀活动中应用广泛,秒杀活动一般会因为流量过大,导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列。
作用:可以缓解短时间的高流量压垮应用(应用程序按自己的最大处理能力获取订单)

本系列课程目标

  1、掌握RabbitMQ的使用方法,能把RabbitMQ应用到项目实战中去
  2、能使用消息中间件解决实际问题
  3、使用.net 开发RabbitMQ程序,使用在高并发应用场景。

本系列课程的主题

  RabbitMQ安装、配置(暂定Windows,后续增加Linux)

  RabbitMQ基本概念

  .Net消息生产端开发

  .Net消费端开发

  .Net消费端耗时操作并行消费

  RabbitMQ重试队里实现

  RabbitMQ集群

  HAProxy实现MQ负载均衡、故障转移

  RabbitMQ健康监测

-------------------------------------------------

RabbitMQ技术交流群:588273396

小白程序要进阶系列之RabbitMQ-前言

标签:中间   方式   支持   交流   erlang   客户   lin   订阅   持久化   

原文地址:http://www.cnblogs.com/xiaobai888/p/7535259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!