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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白程序要进阶系列之RabbitMQ-前言相关的知识,希望对你有一定的参考价值。

什么是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-前言的主要内容,如果未能解决你的问题,请参考以下文章

小白学数据之NoSQL数据库 进阶篇

rabbitmq系列三 之发布/订阅

Android逆向进阶——揭开Hook的神秘面纱

Java面试之RabbitMQ

selenium之webdriver详解——小白进阶之路(二)

打怪升级之小白的大数据之旅(七十二)<Flume进阶>