第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

RabbitMQ 入門教程

RabbitMQ 簡介
RabbitMQ 簡介
首頁 慕課教程 RabbitMQ 入門教程 RabbitMQ 入門教程 RabbitMQ 基礎(chǔ)核心配置文件介紹

RabbitMQ 基礎(chǔ)核心配置文件介紹

1. 前言

Hello,大家好。今天會為同學(xué)們介紹 RabbitMQ 中的基礎(chǔ)核心配置文件。這些基礎(chǔ)核心配置文件是保證我們的 RabbitMQ 服務(wù)正常運行的基礎(chǔ),如果我們沒有根據(jù)實際情況去配置這些文件,那么我們的 RabbitMQ 服務(wù)可能就不會按照我們計劃的那樣去運行,也就不能達到我們預(yù)期的結(jié)果。

理解并掌握 RabbitMQ 基礎(chǔ)核心配置文件的配置方法,以及基礎(chǔ)核心配置屬性,是靈活配置和應(yīng)用 RabbitMQ 服務(wù)的前提,我們只有掌握了 RabbitMQ 的配置手段之后,我們才能在不同場景去應(yīng)用 RabbitMQ 。

本節(jié)主要內(nèi)容:

  • RabbitMQ 環(huán)境相關(guān)配置文件及參數(shù);

  • RabbitMQ 基礎(chǔ)配置文件及參數(shù);

  • RabbitMQ 額外配置文件及參數(shù)。

2. RabbitMQ 環(huán)境相關(guān)配置文件及參數(shù)

2.1 文件定義與路徑

RabbitMQ 的環(huán)境配置文件,主要是用來對 RabbitMQ 服務(wù)所運行的環(huán)境進行配置,該配置文件根據(jù)所處的平臺設(shè)置了不同的文件名稱,在 Windows 平臺中,該配置文件被稱為 rabbitmq-env-conf.bat ,在 Centos 平臺中,該配置文件被稱為 rabbitmq-env.conf 。

如果同學(xué)們在安裝 RabbitMQ 服務(wù)時,均采用了默認安裝的方式,那么在 Windows 平臺中,rabbitmq-env-conf.bat 配置文件的所在目錄就位于 RabbitMQ 服務(wù)的安裝目錄下的 sbin 目錄中;在 Centos 平臺中,rabbitmq-env.conf 配置文件的所在目錄就位于 /usr/lib/rabbitmq/bin 目錄下。 如果大家在安裝 RabbitMQ 服務(wù)時,采用了自定義安裝的方式,那么請到各自對應(yīng)的目錄下去尋找該配置文件。

Tips: 本著簡潔明了的原則,本節(jié)所介紹的 RabbitMQ 配置文件均以 Centos 平臺下的為例,這和 Windows 平臺大同小異,并沒有其他的特殊之處。

2.2 核心配置屬性介紹

RABBITMQ_NODE_IP_ADDRESS 屬性

RABBITMQ_NODE_IP_ADDRESS 屬性是用來描述可訪問 RabbitMQ 服務(wù)的主機地址,具體到我們的工作當中,就是允許哪些應(yīng)用程序訪問我們的 RabbitMQ 服務(wù)。

該屬性默認值為空字符串,表示任何應(yīng)用程序都可以訪問我們的 RabbitMQ 服務(wù)。那么,如果我們只允許一個應(yīng)用程序來訪問我們的 RabbitMQ 服務(wù),我們應(yīng)該怎么來配置呢?如下代碼所示:

// 假定我們的應(yīng)用程序所在地址為 192.165.22.123
RABBITMQ_NODE_IP_ADDRESS="192.165.22.123"

通過上述代碼,我們可以知道,如果我們想指定應(yīng)用程序訪問我們的 RabbitMQ 服務(wù),那么我們只需要將我們應(yīng)用程序所在地址作為字符串的形式,來發(fā)賦給 RABBITMQ_NODE_IP_ADDRESS 屬性即可。

RABBITMQ_NODE_PORT 屬性

RABBITMQ_NODE_PORT 屬性是用來描述 RabbitMQ 服務(wù)所使用的網(wǎng)絡(luò)端口,即 RabbitMQ 服務(wù)在服務(wù)器上所綁定的服務(wù)端口。

該屬性默認值為 5672 ,即 RabbitMQ 服務(wù)默認使用 5672 端口。如果我們想改變 RabbitMQ 服務(wù)所綁定的端口,我們只需要按照上述屬性的設(shè)置步驟即可,如下代碼所示:

// 假定我們需要將 RabbitMQ 的服務(wù)綁定到 6672 端口上
RABBITMQ_NODE_PORT="6672"

RABBITMQ_NODENAME 屬性

RABBITMQ_NODENAME 屬性是用來描述 RabbitMQ 服務(wù)當前所在節(jié)點的名稱。

該屬性的默認值是根據(jù)不同操作系統(tǒng)來定義的,在 Windows 系統(tǒng)中,RABBITMQ_NODENAME 屬性的默認值為 rabbit@%COMPUTERNAME% ,即我們電腦的名稱;在 Centos 系統(tǒng)中,RABBITMQ_NODENAME 屬性的默認值為 rabbit@$HOSTNAME ,即我們主機的名稱。

同樣地,如果我們想自定義 RabbitMQ 服務(wù)的節(jié)點名稱,我們可以這樣來做:

// 假定我們需要將當前 RabbitMQ 服務(wù)所在節(jié)點的名稱修改為 rabbitmq-server-one
RABBITMQ_NODENAME="rabbitmq-server-one"

Tips: 一般來說,如果我們的 RabbitMQ 服務(wù)只有一個節(jié)點,是不會修改 RabbitMQ 的服務(wù)名稱的,如果我們的 RabbitMQ 服務(wù)存在多個節(jié)點,即 2個及 2 個以上節(jié)點時,我們需要根據(jù)每個 RabbitMQ 所起到的服務(wù)來為不同的 RabbitMQ 節(jié)點設(shè)置服務(wù)名稱。

RABBITMQ_USE_LONGNAME 屬性

RABBITMQ_USE_LONGNAME 屬性是是否啟用 RabbitMQ 全量名稱的開關(guān),當我們開啟后,我們每個 RabbitMQ 節(jié)點的名稱以及其他可命名的地方都會采用完整名稱規(guī)則的方式來進行命名。

該屬性的默認值為 false ,即不使用 RabbitMQ 全量名稱規(guī)則來命名,只是用默認的正常規(guī)則來進行命名,如果我們需要打開 RabbitMQ 全量命名,我們可以這樣打開:

RABBITMQ_USE_LONGNAME=true

Tips: 在實際工作中,很少會使用 RabbitMQ 的全量命名規(guī)則,因為這種命名策略生成的名稱非常長,且不易讀,不利于我們對 RabbitMQ 服務(wù)節(jié)點的維護,當然,如果我們必須要使用這種命名規(guī)則,也是無可厚非的。

RABBITMQ_SERVICENAME 屬性

RABBITMQ_SERVICENAME 屬性用來描述 RabbitMQ 服務(wù)的服務(wù)名稱。

該屬性只對 Windows 系統(tǒng)起作用,其默認值為 RabbitMQ ,在 Centos 系統(tǒng)中,RabbitMQ 的服務(wù)名稱不可修改,統(tǒng)一被命名為 rabbitmq-server.service 。

那么,在 Windows 系統(tǒng)中,如果我們想修改 RabbitMQ 的服務(wù)名稱,我們只需要找到 services.msc 文件,并以文本文檔的類型打開它,在里面找到 RABBITMQ_SERVICENAME 屬性,將它的值修改成我們想要的名稱即可,如下代碼所示:

// 假定我們需要修改服務(wù)名稱為 rabbitmq-server
RABBITMQ_SERVICENAME="rabbitmq-server"

RABBITMQ_CONSOLE_LOG 屬性

RABBITMQ_CONSOLE_LOG 屬性用來規(guī)定 RabbitMQ 服務(wù)所生成的服務(wù)日志的路徑,如果沒有設(shè)置該屬性,則 RabbitMQ 不會生成任何服務(wù)日志。

該屬性的默認值為空,即默認沒有規(guī)定 RabbitMQ 服務(wù)日志的生成位置。

如果我們想指定 RabbitMQ 服務(wù)所生成的位置,我們只需要將路徑賦值給 RABBITMQ_CONSOLE_LOG 屬性即可,如下代碼所示:

RABBITMQ_CONSOLE_LOG=/usr/temp/rabbtmq-log/one.log

RABBITMQ_DIST_PORT 屬性

RABBITMQ_DIST_PORT 屬性用來描述 RabbitMQ 服務(wù)節(jié)點間進行通信的端口號。

該屬性的默認值為 RABBITMQ_NODE_PORT + 20000 。

修改方式如下代碼所示:

// 假定我們需要修改端口號為 RABBITMQ_NODE_PORT + 20001
RABBITMQ_DIST_PORT=RABBITMQ_NODE_PORT + 20001

Tips: 1. 在實際工作中,一般不會刻意去修改 RabbitMQ 服務(wù)節(jié)點間進行通信的端口號,除非我們的應(yīng)用程序所綁定的端口與該端口發(fā)生了沖突。
2. 修改 RabbitMQ 服務(wù)節(jié)點間通信端口號我們可以采用一種自增的原則,即我們不要修改 RABBITMQ_NODE_PORT ,我們修改的是后面的 20000 ,將 20000 進行一次累加即可。
3.rabbitmq-env.conf 文件中的所有屬性在發(fā)生變化之后,都需要重啟我們的 RabbitMQ 服務(wù)才能生效。

3. RabbitMQ 基礎(chǔ)配置文件及參數(shù)

3.1 文件定義與路徑

RabbitMQ 基礎(chǔ)配置文件主要用來對 RabbitMQ 服務(wù)本身做一些配置,從而來滿足我們的業(yè)務(wù)需求。同樣地,該配置文件也是根據(jù)不同的操作系統(tǒng)來進行命名的,在 Windows 系統(tǒng)中,該配置文件被稱為 rabbitmq-conf.bat , 在 Centos 系統(tǒng)中,該配置文件被稱為 rabbitmq.conf 。

在 Centos 系統(tǒng)中,該配置文件默認的路徑為 /etc/rabbitmq/ ,在 Windows 系統(tǒng)中,該配置文件默認的路徑為 %APPDATA%\RabbitMQ ,其中,APPDATA 指的是 RabbitMQ 中數(shù)據(jù)文件所在的路徑。

3.2 核心配置屬性介紹

listeners 屬性

listeners 屬性是 AMQP 協(xié)議用來監(jiān)聽 tcp 端口的監(jiān)聽器,完整屬性名稱為 listeners.tcp.default 。

該屬性的默認值為 5672 ,即 AMQP 協(xié)議默認監(jiān)聽 5672 端口。

修改方式同上,這里不再贅述。

log.file.level 屬性

log.file.level 屬性用來定義 RabbitMQ 服務(wù)日志的打印級別,一共有 4 種日志打印級別,分別是 error 、warning 、info 、debug,這四種日志級別根據(jù)這個順序互相包含,即 debug 級別的日志會打印出 error 、warning、info、debug 的所有數(shù)據(jù)。

該屬性默認值為 info ,即默認的服務(wù)日志打印級別為 info 級別,會打印包括 error 、warning 、info 的所有數(shù)據(jù)。

修改方式同上,這里不再贅述。

channel_max & channel_operation_timeout 屬性

channel_max 屬性是用來規(guī)定具體的一個頻道與客戶端的最大連接數(shù)量,該數(shù)量的默認值為 2047 。

channel_operation_timeout 屬性是用來規(guī)定獲取具體的一個頻道連接的最大超時時間,該時間默認值為 15000 毫秒。

修改方式同上,這里不再贅述。

max_message_size & heartbeat & default_vhost 屬性

max_message_size 屬性用來規(guī)定一條消息的最大占用空間,該屬性的單位為比特,默認值為 134217728 ,最大值為 536870912 。

heartbeat 屬性用來規(guī)定 RabbitMQ 服務(wù)中心跳檢測的超時時間,如果該屬性的值設(shè)置為 0 ,則 RabbitMQ 服務(wù)的心跳檢測機制會自動關(guān)閉,該屬性的默認值為 60 秒。

default_vhost 屬性用來規(guī)定 RabbitMQ 服務(wù)中默認的虛擬主機名稱,默認值為 / 。

修改方式同上,這里不再贅述。

default_user & default_pass & default_user_tags & default_permissions 屬性

default_user 屬性和 default_pass 屬性分別用來規(guī)定 RabbitMQ 服務(wù)中默認的用戶名和密碼,默認值均為 guest 。

default_user_tags 屬性用來對用戶的角色進行設(shè)置,默認值為 administrator,即默認用戶為 RabbitMQ 服務(wù)的超級管理員,如下代碼所示:

default_user_tags.administrator = true

default_permissions 屬性用來規(guī)定用戶的默認權(quán)限,默認值為所有用戶都可以對 RabbitMQ 進行配置,以及讀寫操作。

如果我們想修改用戶的權(quán)限,那么我們需要這樣進行修改:

default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*

上述代碼中,configure 用來設(shè)置是否允許用戶對 RabbitMQ 進行配置,read 用來設(shè)置用戶的讀權(quán)限,write 用來設(shè)置用戶的寫權(quán)限。

cluster_formation.classic_config.nodes 屬性

cluster_formation.classic_config.nodes 屬性用來設(shè)置不同 RabbitMQ 服務(wù)節(jié)點間連接,該屬性會作為一個列表生效,即該列表中的所有 RabbitMQ 服務(wù)節(jié)點在 RabbitMQ 服務(wù)啟動時都將被啟動,且各節(jié)點間的通信通道將被打開。

那么該如何定義我們所需要的節(jié)點呢?如下代碼所示:

// 假定我們有兩個服務(wù)節(jié)點需要通信
cluster_formation.classic_config.nodes.1 = rabbit@hostname1
cluster_formation.classic_config.nodes.2 = rabbit@hostname2

Tips: 1. rabbitmq.conf 文件中的所有屬性,一經(jīng)修改,需要重啟 RabbitMQ 服務(wù)才可生效。
2. 出于不同的安裝方式,rabbitmq.conf 配置文件可能有的安裝方式不會自動生成,如果需要,我們可以在上述指定目錄新建一個 rabbitmq.conf 文件,并重啟 RabbitMQ 服務(wù)。

4. RabbitMQ 額外配置文件

文件介紹

通過對上述 RabbitMQ 環(huán)境配置文件以及 RabbitMQ 基礎(chǔ)配置文件及其中的核心屬性的介紹,我們已經(jīng)將 RabbitMQ 中的所有核心配置項全部介紹完畢了,這些核心配置項基本可以滿足我們自定義 RabbitMQ 98% 的需求的需要。

RabbitMQ 額外配置文件是對上述 RabbitMQ 基礎(chǔ)配置文件的補充,當我們對這個額外配置文件做了自定義配置之后,那么我們所配置的內(nèi)容會和 RabbitMQ 基礎(chǔ)配置文件相合并,但是這個額外配置文件是通過 erlang 語言的語法來配置的,如果我們想自定義該配置文件的話,還需要我們對 erlang 語言有所了解。

出于本套課程的初衷考慮,本節(jié)不會對 RabbitMQ 額外配置文件做進一步的介紹,我們只需要了解 RabbitMQ 配置文件中存在這么一個額外的配置文件即可,這個配置文件在實際工作中幾乎是不使用的。

RabbitMQ 額外配置文件只存在于 Centos 系統(tǒng)中,文件名稱默認為 advanced.config 。在 Centos 系統(tǒng)中,該文件位于 /etc/rabbitmq 路徑下;在 Windows 系統(tǒng)中,該文件位于 %APPDATA%\RabbitMQ 路徑下,其中,APPDATA 指的是 RabbitMQ 中數(shù)據(jù)文件的所在位置。

5. 小結(jié)

本小節(jié)主要對 RabbitMQ 中的配置文件,及其配置文件屬性做了詳細介紹。針對基礎(chǔ)核心配置文件,例如,RabbitMQ 環(huán)境配置文件和 RabbitMQ 基礎(chǔ)配置文件,對這些配置文件中的各個核心配置屬性都做了詳細介紹,對于不需要各位同學(xué)掌握的 RabbitMQ 額外配置文件 advanced.config ,各位同學(xué)只需要知道它的作用即可。