小白程序要進階系列之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-前言