国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

專業(yè)做網(wǎng)站建設(shè)建站公司網(wǎng)站怎么做

專業(yè)做網(wǎng)站建設(shè)建站,公司網(wǎng)站怎么做,北京建設(shè)網(wǎng)站的公司哪家好,做專業(yè)慢搖的網(wǎng)站文章目錄 一、mall開源項(xiàng)目1.1 來源1.2 項(xiàng)目轉(zhuǎn)移1.3 項(xiàng)目克隆 二、RabbitMQ 消息中間件2.1 rabbit簡介2.2 分布式后端項(xiàng)目的使用流程2.3 分布式后端項(xiàng)目的使用場景 三、安裝RabbitMQ(Win10)3.1安裝erLang語言,配置環(huán)境變量3.2 安裝RabbitMQ服務(wù)端3.3 測試安裝效果 四…

文章目錄

    • 一、mall開源項(xiàng)目
      • 1.1 來源
      • 1.2 項(xiàng)目轉(zhuǎn)移
      • 1.3 項(xiàng)目克隆
    • 二、RabbitMQ 消息中間件
      • 2.1 rabbit簡介
      • 2.2 分布式后端項(xiàng)目的使用流程
      • 2.3 分布式后端項(xiàng)目的使用場景
    • 三、安裝RabbitMQ(Win10)
      • 3.1安裝erLang語言,配置環(huán)境變量
      • 3.2 安裝RabbitMQ服務(wù)端
      • 3.3 測試安裝效果
    • 四、源碼解析
      • 4.1 集成與配置
        • 4.1.1 導(dǎo)入依賴
        • 4.1.2 添加配置
        • 4.1.3 創(chuàng)建用戶,密碼,綁定角色(在命令行下)
        • 4.1.4 創(chuàng)建用戶,密碼,綁定角色(在web界面管理工具下)
        • 4.1.5 拓展
      • 4.2 深入淺出
        • 4.2.1 六種消息模式介紹
        • 4.2.2 簡單工作隊(duì)列模式
        • 4.2.3 工作隊(duì)列模式
        • 4.2.4 發(fā)布訂閱模式
        • 4.2.5 路由模式
        • 4.2.5 主題模式
    • 五、總結(jié)

一、mall開源項(xiàng)目

1.1 來源

mall學(xué)習(xí)教程,架構(gòu)、業(yè)務(wù)、技術(shù)要點(diǎn)全方位解析。mall項(xiàng)目(50k+star)是一套電商系統(tǒng),使用現(xiàn)階段主流技術(shù)實(shí)現(xiàn)。涵蓋了SpringBoot 2.3.0、MyBatis 3.4.6、Elasticsearch 7.6.2、RabbitMQ 3.7.15、Redis 5.0、MongoDB 4.2.5、Mysql5.7等技術(shù),采用Docker容器化部署。

項(xiàng)目github地址: github.com

1.2 項(xiàng)目轉(zhuǎn)移

可以把github上的項(xiàng)目轉(zhuǎn)移到gitee上,方便克隆到idea。

具體步驟如下:

在這里插入圖片描述

1.3 項(xiàng)目克隆

由于github部署在國外,雖然idea也支持從github上拉取,但是克隆速度太慢,所以才推薦上述導(dǎo)入gitee后在克隆項(xiàng)目到idea。

具體的克隆步驟過于簡單和常規(guī)化,讀者可自行完成,或百度一下~

二、RabbitMQ 消息中間件

RabbitMQ 消息的傳遞:是由『 生產(chǎn)者 -> 交換機(jī) -> 隊(duì)列 -> 消費(fèi)者 』這么一個(gè)模式,只不過點(diǎn)對點(diǎn)模式和工作隊(duì)列模式我們可以理解成是一個(gè)匿名的交換機(jī)進(jìn)行投遞隊(duì)列。

2.1 rabbit簡介

RabbitMQ 官網(wǎng):官網(wǎng)

RabbitMQ是一個(gè)消息代理 - 一個(gè)消息系統(tǒng)的媒介。它可以為你的應(yīng)用提供一個(gè)通用的消息發(fā)送和接收平臺,并且保證消息在傳輸過程中的安全。

RabbitMQ是一款使用Erlang語言開發(fā)的,實(shí)現(xiàn)AMQP(高級消息隊(duì)列協(xié)議)的開源消息中間件。首先要知道一些RabbitMQ的特點(diǎn)如下:

  • 可靠性。支持持久化,傳輸確認(rèn),發(fā)布確認(rèn)等保證了MQ的可靠性。
  • 靈活的分發(fā)消息策略。這應(yīng)該是RabbitMQ的一大特點(diǎn)。在消息進(jìn)入MQ前由Exchange(交換機(jī))進(jìn)行路由消息。分發(fā)消息策略有:簡單模式、工作隊(duì)列模式、發(fā)布訂閱模式、路由模式、通配符模式。
  • 支持集群。多臺RabbitMQ服務(wù)器可以組成一個(gè)集群,形成一個(gè)邏輯Broker。
  • 多種協(xié)議。RabbitMQ支持多種消息隊(duì)列協(xié)議,比如 STOMP、MQTT 等等。
  • 支持多種語言客戶端。RabbitMQ幾乎支持所有常用編程語言,包括 Java、.NET、Ruby 等等。
  • 可視化管理界面。RabbitMQ提供了一個(gè)易用的用戶界面,使得用戶可以監(jiān)控和管理消息 Broker。
  • 插件機(jī)制。RabbitMQ提供了許多插件,可以通過插件進(jìn)行擴(kuò)展,也可以編寫自己的插件。

rabbit開發(fā)文檔地址: [java客戶端開發(fā)文檔]( Java客戶端指南 · RabbitMQ in Chinese (mr-ping.com) )

2.2 分布式后端項(xiàng)目的使用流程

下圖是結(jié)合項(xiàng)目經(jīng)歷,外加百度查找資料,自行總結(jié)的基本使用流程。

rabbitmq的使用流程圖如下:

在這里插入圖片描述

2.3 分布式后端項(xiàng)目的使用場景

下圖是結(jié)合項(xiàng)目經(jīng)歷,外加百度查找資料,自行總結(jié)的基本使用場景。

rabbitmq的使用場景圖如下:

在這里插入圖片描述

三、安裝RabbitMQ(Win10)

由于以前都是在Linux上操作rabbitmq( 一般用Docker拉一個(gè)RabbitMQ的鏡像下來,省去環(huán)境的部署 ),現(xiàn)在解讀源碼,嘗試一下在win10下操作,需要先有環(huán)境, 首先先下載Erlang ,再下載RabbitMQ服務(wù)端

psRabbitMQErlang是緊密相關(guān)的,因此在選擇RabbitMQ版本時(shí),需要確保它與您安裝的特定Erlang版本兼容。

Erlang/OTP 26.0.2與之兼容版本是RabbitMQ 3.8.x 或者 更高

?寫到后面我憨住了,早知道不選這么高的版本了

經(jīng)過:安裝好兩個(gè)版本后,忘記看項(xiàng)目中 spring-boot-starter-amqp版本為2.1.3作為RabbitMQ客戶端庫,結(jié)果版本不兼容,導(dǎo)致一直連不上,網(wǎng)上百度一堆問題,我都仔細(xì)刷選過了,都是正確的。后面只能把問題定位到版本不兼容上了,然后說退而求其次,去升級spring-boot-starter-amqp版本為2.3.x就可以完美解決,沒想到的是…

阿里云倉庫太坑了,居然沒有。。。

Could not find artifact org.springframework.boot:spring-boot-starter-amqp:pom:2.3.3 in alimaven

然后百度找了許多教程,說改范圍的還有換鏡像的,結(jié)果都試了一下,結(jié)果這個(gè)找不到就算了,其它的依賴也全報(bào)錯(cuò),應(yīng)該是倉庫的依賴沖突啥的,就不深究了。。。

??還是跟著項(xiàng)目走,將 ErlangRabbitMQ服務(wù)端版本降下來。

spring-boot-starter-amqp的版本為2.1.3 是與 RabbitMQ 3.7.x 版本兼容的版本

這里下載RabbitMQ服務(wù)端:rabbitmq-server-3.7.3.exe。

對應(yīng)的Erlang 版本在19.3 - 20.x記住一定要卸載干凈,版本一定要兼容,不然安裝插件會報(bào)版本不兼容的錯(cuò)誤

下面截圖就不更新了,沒啥必要,只是版本號不同,操作幾乎大同小異。(最終是連接上了,確實(shí)是版本不兼容的問題,真是各處坑都踩完……)

3.1安裝erLang語言,配置環(huán)境變量

1、先到官網(wǎng)下載,Erlang官網(wǎng):官網(wǎng)(下載win10版)

在這里插入圖片描述

2、下載完成為otp_win64_26.0.exe,接著雙擊安裝,一直點(diǎn)next就行了(可以切換安裝路徑),安裝完之后,配置環(huán)境變量。

在這里插入圖片描述

3、 環(huán)境變量配置完畢,使用cmd命令,輸入erl -version驗(yàn)證是否成功。

成功截圖類似下圖:

在這里插入圖片描述

3.2 安裝RabbitMQ服務(wù)端

1、在RabbitMQ的github上下載window版本的服務(wù)端安裝包。

下載地址:Release RabbitMQ 3.8.32 · rabbitmq/rabbitmq-server (github.com) )
在這里插入圖片描述

2、下載為rabbitmq_server-3.8.32.exe,接著到雙擊安裝,一直點(diǎn)下一步安裝即可(可以切換安裝路徑),安裝完成后,找到安裝目錄下\rabbitmq\rabbitmq_server-3.8.32\sbin 打開cmd命令,輸入rabbitmq-plugins enable rabbitmq_management命令安裝管理頁面的插件。

在這里插入圖片描述

3、 雙擊rabbitmq-server.bat啟動(dòng)腳本,然后打開服務(wù)管理可以看到RabbitMQs是否正在運(yùn)行。(降低版本后,沒有注冊到服務(wù)上,需要啟動(dòng)腳本,不要關(guān)閉命令行窗口,使得服務(wù)在其上跑著)

在這里插入圖片描述

3.3 測試安裝效果

1、 打開瀏覽器輸入http://localhost:15672

賬號密碼默認(rèn)是:guest/guest,成功效果:

在這里插入圖片描述

2、安裝成功,登錄后的效果如下圖。

在這里插入圖片描述

四、源碼解析

看源碼自我總結(jié)出來的看新項(xiàng)目時(shí)的基本步驟,首先先看集成和配置,在從業(yè)務(wù)的角度來分析,結(jié)合集成的框架和組件,來依次剝削系統(tǒng)的架構(gòu)。

**解析內(nèi)容:**下方的解析內(nèi)容大部分在圖中解釋,外面就不做過多的闡述。

4.1 集成與配置

直接拿源碼分析,只分析與rabbitmq有關(guān)的部分,其它部分讀者請,自行看源碼分析。

**項(xiàng)目啟動(dòng):**只需要啟動(dòng)mall-tiny-rabbit模塊的部分即可。

**啟動(dòng)所需:**啟動(dòng)RabbitMQ的服務(wù)(前面有安裝win10版)

4.1.1 導(dǎo)入依賴

pom文件中導(dǎo)入rabbitmq的相關(guān)依賴spring-boot-starter-amqp(rabbitmq集成進(jìn)springboot)。

在這里插入圖片描述

4.1.2 添加配置

application.yml中添加rabbitmq的相關(guān)配置。

在這里插入圖片描述

4.1.3 創(chuàng)建用戶,密碼,綁定角色(在命令行下)

rabbitmq的用戶管理包括增加用戶,刪除用戶,查看用戶列表,修改用戶密碼。

1、 查看已有用戶及用戶的角色:

rabbitmqctl.bat list_users

在這里插入圖片描述

2、 新增一個(gè)用戶:

// rabbitmqctl.bat add_user username password
rabbitmqctl.bat add_user mall mall

在這里插入圖片描述

3、刪除一個(gè)用戶:

// 注意觀察查詢、添加、刪除都是只換前綴,更新亦然,就不列舉了
rabbitmqctl.bat delete_user mall

4、綁定角色:

rabbitmqctl.bat set_user_tags mall administrator

在這里插入圖片描述

4.1.4 創(chuàng)建用戶,密碼,綁定角色(在web界面管理工具下)

1、介紹web界面管理工具頁

在這里插入圖片描述

2、 添加用戶和給予角色

在這里插入圖片描述

3、由于yml文件中配置有virtual-host: /mall, 添加Virtual Hosts(可以理解成一個(gè)數(shù)據(jù)庫,類似于mysql、oracle之類的)

在這里插入圖片描述

4.1.5 拓展

rabbitmq用戶角色可分為五類:超級管理員, 監(jiān)控者, 策略制定者, 普通管理者以及其他。

(1) 超級管理員(administrator)

可登陸管理控制臺(啟用management plugin的情況下),可查看所有的信息,并且可以對用戶,策略(policy)進(jìn)行操作。

(2) 監(jiān)控者(monitoring)

可登陸管理控制臺(啟用management plugin的情況下),同時(shí)可以查看rabbitmq節(jié)點(diǎn)的相關(guān)信息(進(jìn)程數(shù),內(nèi)存使用情況,磁盤使用情況等)

(3) 策略制定者(policymaker)

可登陸管理控制臺(啟用management plugin的情況下), 同時(shí)可以對policy進(jìn)行管理。

(4) 普通管理者(management)

僅可登陸管理控制臺(啟用management plugin的情況下),無法看到節(jié)點(diǎn)信息,也無法對策略進(jìn)行管理。

(5) 其他的

無法登陸管理控制臺,通常就是普通的生產(chǎn)者和消費(fèi)者。

4.2 深入淺出

4.2.1 六種消息模式介紹

六種消息模式的官網(wǎng):RabbitMQ Tutorials — RabbitMQ

  1. Simple Work Queue(簡單工作隊(duì)列):也就是常說的點(diǎn)對點(diǎn)模式,一條消息由一個(gè)消費(fèi)者進(jìn)行消費(fèi)。(當(dāng)有多個(gè)消費(fèi)者時(shí),默認(rèn)使用輪訓(xùn)機(jī)制把消息分配給消費(fèi)者)。
  2. Work Queues (工作隊(duì)列):也叫公平隊(duì)列,能者多勞的消息隊(duì)列模型。隊(duì)列必須接收到來自消費(fèi)者的 手動(dòng)ack 才可以繼續(xù)往消費(fèi)者發(fā)送消息。
  3. Publish/Subscribe (發(fā)布訂閱模式):一條消息被多個(gè)消費(fèi)者消費(fèi)。
  4. Routing(路由模式):有選擇的接收消息。
  5. Topics(主題模式):通過一定的規(guī)則來選擇性的接收消息。
  6. RPC 模式:發(fā)布者發(fā)布消息,并且通過 RPC 方式等待結(jié)果。(使用場景少,在源碼中沒有,想了解的可以去官網(wǎng)了解)

ps:官網(wǎng)最后有一個(gè) Publisher Confirms消息確認(rèn)機(jī)制。指的是生產(chǎn)者如何發(fā)送可靠的消息。

4.2.2 簡單工作隊(duì)列模式

一條消息由一個(gè)消費(fèi)者進(jìn)行消費(fèi) (當(dāng)有多個(gè)消費(fèi)者時(shí),默認(rèn)使用輪訓(xùn)機(jī)制把消息分配給消費(fèi)者)

1、 配置類

配置 RabbitMQ 的 Spring 配置類 SimpleRabbitConfig,其中創(chuàng)建了一個(gè)消息隊(duì)列對象、一個(gè)發(fā)送消息的對象(SimpleSender),以及一個(gè)接收消息的對象(SimpleReceiver)。這些對象都將由 Spring 框架進(jìn)行管理和注入。

在這里插入圖片描述

2、消息發(fā)送者

在這里插入圖片描述

3、消息消費(fèi)者

在這里插入圖片描述

4、簡單工作隊(duì)列模式的控制層接口

在這里插入圖片描述

5、swagger發(fā)送效果

swagger無法啟動(dòng)的,請參考我上一篇博文: mall:redis項(xiàng)目源碼解析_憶~遂愿的博客-CSDN博客

在這里插入圖片描述

6、rabbitmq服務(wù)端的界面顯示效果

在這里插入圖片描述

7、idea控制臺打印的日志信息

在這里插入圖片描述

4.2.3 工作隊(duì)列模式

公平隊(duì)列,能者多勞的消息隊(duì)列模型。隊(duì)列必須接收到來自消費(fèi)者的 手動(dòng)ack 才可以繼續(xù)往消費(fèi)者發(fā)送消息。(模擬消費(fèi))

1、 定義了一些消息隊(duì)列以及相應(yīng)的消息接收器和發(fā)送器

在這里插入圖片描述

2、消息發(fā)送者

在這里插入圖片描述

3、消息消費(fèi)者

在這里插入圖片描述

4、工作隊(duì)列模式的控制層接口

在這里插入圖片描述

5、idea控制臺打印的日志信息

在這里插入圖片描述

4.2.4 發(fā)布訂閱模式

一條消息被多個(gè)消費(fèi)者消費(fèi)。

1、配置類

在這里插入圖片描述

2、消息發(fā)送者

在這里插入圖片描述

3、消息消費(fèi)者

在這里插入圖片描述

4、發(fā)布/訂閱模式的控制層接口

在這里插入圖片描述

5、rabbitmq服務(wù)端的界面顯示效果

在這里插入圖片描述

6、idea控制臺打印的日志信息

在這里插入圖片描述

4.2.5 路由模式

有選擇的接收消息。

1、配置類

通過配置不同的綁定鍵,可以將不同的隊(duì)列綁定到同一個(gè)交換機(jī)上,以實(shí)現(xiàn)消息的路由和分發(fā)。

在這里插入圖片描述

2、消息發(fā)送者

在這里插入圖片描述

3、消息消費(fèi)者

在這里插入圖片描述

4、路由模式的控制層接口

在這里插入圖片描述

5、idea控制臺打印的日志信息

在這里插入圖片描述

4.2.5 主題模式

通過一定的規(guī)則來選擇性的接收消息。

1、配置類

在這里插入圖片描述

2、消息發(fā)送者

在這里插入圖片描述

3、消息消費(fèi)者

在這里插入圖片描述

4、路由模式的控制層接口

在這里插入圖片描述

5、idea控制臺打印的日志信息

在這里插入圖片描述

五、總結(jié)

本文是有我先從實(shí)際項(xiàng)目中獲取需求,從而對RabbitMQ消息隊(duì)列的學(xué)習(xí),結(jié)合源碼來學(xué)習(xí),從mall開源項(xiàng)目中學(xué)習(xí)RabbitMQ,感覺收獲頗深,希望這篇文章對你們也會有所幫助。

后續(xù)我也會結(jié)合該框架學(xué)習(xí)一下其他的技術(shù)棧。

盈若安好,便是晴天

http://www.aloenet.com.cn/news/32094.html

相關(guān)文章:

  • 建設(shè)項(xiàng)目立項(xiàng)網(wǎng)站搜索引擎優(yōu)化網(wǎng)站
  • 如何做二維碼跳轉(zhuǎn)到網(wǎng)站軟件開發(fā)
  • 杭州余杭做網(wǎng)站公司免費(fèi)推廣網(wǎng)站地址大全
  • 傳統(tǒng)網(wǎng)站有沒有建設(shè)必要建網(wǎng)站賺錢
  • 承德網(wǎng)站建設(shè)方案在線排名優(yōu)化工具
  • 個(gè)人網(wǎng)站 數(shù)據(jù)庫如何上傳到空間視頻號推廣
  • 墻內(nèi)千兆網(wǎng)站怎么做seo應(yīng)該怎么做
  • 網(wǎng)站怎么做下載連接重慶seo網(wǎng)絡(luò)推廣平臺
  • 微信營銷網(wǎng)站模板中國疾控衛(wèi)生應(yīng)急服裝
  • 網(wǎng)站怎么做qq登錄界面百度知道合伙人
  • 網(wǎng)站做支付要多少錢seo公司怎么樣
  • 網(wǎng)站收費(fèi)怎么做seo技術(shù)快速網(wǎng)站排名
  • 東至網(wǎng)站定制免費(fèi)入駐的賣貨平臺
  • 視頻網(wǎng)站砸錢做生態(tài)百度一下官網(wǎng)
  • 初次建設(shè)網(wǎng)站的技巧聊城網(wǎng)站推廣的公司
  • 怎么用阿帕奇做網(wǎng)站谷歌廣告聯(lián)盟
  • 山東做網(wǎng)站的公司蘭州做網(wǎng)站的公司
  • 房地產(chǎn)營銷門戶網(wǎng)站建設(shè)鄭州網(wǎng)站建設(shè)價(jià)格
  • 公司網(wǎng)站制作公司排名網(wǎng)絡(luò)營銷推廣策略有哪些
  • 有關(guān)師德建設(shè)的網(wǎng)站網(wǎng)站建設(shè)需要多少錢?
  • 做網(wǎng)站用的hu軟件網(wǎng)站維護(hù)費(fèi)一年多少錢
  • 企業(yè)管理網(wǎng)站開發(fā)論文可以營銷的十大產(chǎn)品
  • 唐山seo快速排名seo全稱是什么
  • 汕頭百度網(wǎng)站建設(shè)成都網(wǎng)絡(luò)營銷品牌代理機(jī)構(gòu)
  • 織夢修改網(wǎng)站后備份網(wǎng)絡(luò)軟文
  • 搭建平臺暢通渠道網(wǎng)站seo推廣
  • 自己做網(wǎng)絡(luò)棋牌網(wǎng)站流程泉州seo報(bào)價(jià)
  • 商城網(wǎng)站建設(shè)招聘百度搜索風(fēng)云榜總榜
  • 網(wǎng)站app開發(fā)平臺網(wǎng)站搭建谷歌seo
  • wordpress插件裝多了卡seo代碼優(yōu)化包括哪些