1. 程式人生 > >小白程序要進階系列之RabbitMQ-前言

小白程序要進階系列之RabbitMQ-前言

小白 部分 持久化 程序 ruby spa pan 導致 寫入

什麽是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-前言