Rabbit MQ config文件解析

Rabbit MQ config文件解析

  1. tcp_listeners:用於監聽AMQP鏈接的端口或主機名/對(不帶TLS),默認端口:5672
  2. 2.numtcpacceptors :將接受TCP偵聽器鏈接的Erlang進程數。 默認值:10
  3. handshake_timeout:AMQP 0-8 / 0-9 / 0-9-1握手(套接字鏈接和SSL握手後)的最長時間,以毫秒爲單位。 默認值:10000
  4. ssl_listeners:如上所述,用於SSL鏈接。 默認值:[]
  5. numsslacceptors:將接受SSL偵聽器鏈接的Erlang進程數。 默認值:1
  6. ssl_options:SSL配置。請參閱SSL文檔。 默認值:[]
  7. sslhandshaketimeout:SSL握手超時,以毫秒爲單位。 默認值:5000
  8. vmmemoryhigh_watermark:觸發流量控制的內存閾值。請參見基於內存的流量控制文檔。 默認值:0.4
  9. vmmemoryhigh_watermarkpagingratio:隊列開始將消息發送到光盤以釋放內存的高水位限制的分數。請參見基於內存的流量控制文檔。 默認值:0.5
  10. diskfreelimit:RabbitMQ存儲數據的分區的磁盤空間限制。當可用磁盤空間低於此限制時,會觸發流量控制.該值能夠相對於RAM的總量設置(例如{mem_relative,1.0}),該值也能夠設置爲整數個字節。或者,在信息單元(例如「50MB」)中。默認狀況下,可用磁盤空間必須超過50MB。請參閱磁盤警報文檔。默認值:50000000
  11. log_levels:控制日誌記錄的粒度。該值是日誌事件類別和日誌級別對的列表,該級別能夠是「none」之一(不記錄任何事件),「Error」(僅記錄Error),「warning」(僅記錄errors和warning),「info」(errors,warnings和informational 性消息被記錄)或「debug」(errors,warnings,informational和Debug消息都會被記錄)。目前有四類定義。其餘,目前未分類的事件始終被記錄。 類別是:node

    channel -全部與AMQP頻道有關的活動.web

    connection -用於全部與網絡鏈接相關的事件數據庫

    federation -對於與federation有關的全部事件後端

    mirroring -用於全部與鏡像隊列相關的事件。緩存

    默認值:[{connection,info}]安全

12.framemax:與客戶端協商的幀的最大容許大小(以字節爲單位),設置爲0表示「無限制」,但會在一些QPid客戶端中觸發錯誤.設置較大的值能夠提升吞吐量;設置較小的值可能會提升延遲,默認值: 131072 13.channelmax:與客戶協商的最大容許通道數,設置爲0表示「無限制」。使用更多的通道會增長代理的內存佔用。默認:0服務器

14.channeloperationtimeout:通道運行超時(以毫秒爲單位)(內部使用,因爲消息傳遞協議的差別和限制,不會直接暴露給客戶端),默認:15000網絡

15.heartbeat:表明心跳延遲的值.在幾秒鐘內,服務器在connection.tune幀中發送.若是設置爲0,則將禁用心跳.客戶可能不遵循服務器建議,有關詳細信息,請參閱AMQP參考.在大量鏈接的狀況下,禁用心跳可能會提升性能,可是可能致使在存在關閉非活動鏈接的網絡設備的狀況下鏈接丟失。默認值:60(版本3.5.5以前的580)dom

16.default_vhost:當RabbitMQ從頭建立新數據庫時,建立虛擬主機。交換機amq.rabbitmq.log將存在於此虛擬主機中。 默認值:<<「/」>>tcp

17.default_user:RabbitMQ從頭建立新數據庫時要建立的用戶名。 默認值:<<「guest」>>

18.default_pass:默認用戶的密碼。 默認值:<<「guest」>>

19.defaultusertags:默認用戶的標籤。 默認:[administrator]

20.default_permissions:建立時分配給默認用戶的權限。 默認: [<<「.」>>,<<「.」>>,<<「.*」>>]

21.loopback_users:僅容許經過環回接口(即本地主機)鏈接到代理的用戶列表.若是您但願容許默認訪客用戶遠程鏈接,則須要將其更改成[]。 默認值:[<<「guest」>>]

22.cluster_nodes:設置此選項可使節點在第一次啓動時自動發生。元組的第一個元素是節點將嘗試彙集到的節點。第二個元素是disc或ram,並肯定節點類型。Default: {[], disc}

23.server_properties:關於鏈接的客戶端通知的鍵值對列表。Default: []

24.collect_statistics:統計收集模式。主要與管理插件相關。 可選項是:

none (do not emit statistics events)

coarse (emit per-queue/per-channel/per-connection statistics)

fine (also emit per-message statistics)

Default: none

25.collectstatisticsinterval:統計信息收集間隔(以毫秒爲單位)。主要與管理插件相關。 默認值:5000

26.managementdbcache_multiplier:影響管理插件將緩存昂貴的管理查詢(如隊列列表)的時間量.高速緩存會將上次查詢的通過時間乘以此值,並將結果緩存一段時間。 默認值:5

27.auth_mechanisms:SASL認證機制,以提供給客戶。 默認值:[ 'PLAIN', 'AMQPLAIN']

28.auth_backends:使用身份驗證和受權後端列表。 其餘數據庫比rabbit_auth_backend_internal能夠經過插件。 默認值:[rabbit_auth_backend_internal]

29.reversednslookups:設置爲true以使RabbitMQ在客戶端鏈接上執行反向DNS查找,並經過rabbitmqctl和管理插件來呈現該信息。 默認值:false

30.delegate_count:用於集羣內通訊的表明進程數。在具備很是大數量的核心而且也是集羣的一部分的機器上,您可能但願增長此值。默認值:16

31.trace_vhosts:用於tracer內部使用。你不該該改變這個。 默認值:[]

32.tcplistenoptions:默認套接字選項。你可能不想改變這個。 Default: [{backlog, 128}, {nodelay, true}, {linger, {true,0}}, {exitonclose, false}]

33.hipe_compile:設置爲true.爲了預編譯RabbitMQ部分與HiPE,一個即時編譯器爲Erlang。這將以增長啓動時間爲代價增長服務器吞吐量。您可能會在啓動時花費幾分鐘的時間來得到20-50%的性能.這些數字高度依賴於工做負載和硬件.HiPE支持可能不會被編譯到Erlang安裝中。若是沒有,則啓用此選項將僅顯示警告消息,正常狀況下將啓動啓動。例如,Debian / Ubuntu用戶須要安裝erlang-base-hipe軟件包. 在某些平臺上,HiPE徹底不可用,特別是Windows.HiPE在17.5以前的Erlang / OTP版本中已經出現了問題。對於HiPE,強烈推薦使用最近的Erlang / OTP版本。默認值:false

34.cluster_partition_handling:如何處理網絡分區。可用模式有:

ignore

pause_minority

{pause_if_all_down,[nodes],ignore | autoheal}其中[nodes]是節點名稱列表 (例如:['rabbit @ node1','rabbit @ node2'])

autoheal 默認值: ignore

35.clusterkeepaliveinterval:節點應該如何頻繁地向其餘節點發送keepalive消息(以毫秒爲單位)。請注意,這與net_ticktime不同;錯過的keepalive消息不會致使節點被忽略。 默認值:10000

36.queueindexembedmsgsbelow:消息大小以字節爲單位,消息將直接嵌入在隊列索引中。建議您在更改以前閱讀維護者調整文檔。默認:Default: 4096

37.msgstoreindex_module:隊列索引實現模塊。建議您在更改以前閱讀維護者調整文檔。 默認值:rabbit_msg_store_ets_index

38.backing_queue_module:隊列內容的實現模塊。你可能不想改變這個。 默認值:rabbit_variable_queue

39.msg_store_file_size_limit:持久的可調整值。你幾乎確定不該該改變這個。 默認值:16777216

40.mnesia_table_loading_retry_limit:在等待羣集中的Mnesia表可用時重試的次數。 默認值:10

41.queue_index_max_journal_entries:持久的可調整值。你幾乎確定不該該改變這個。 默認值:65536

42.queue_master_locator:隊列主位置策略。可用的策略是:

<<"min-masters">>

<<"client-local">>

<<"random">>

有關詳細信息,請參閱隊列主位置的文檔。 默認值:<<「client-local」>>

43.lazy_queue_explicit_ gc_run_operation_threshold:在內存壓力下,可調整的值僅適用於惰性隊列.這是觸發垃圾回收器和其餘內存減小活動的閾值.低價值能夠下降性能,並且能夠提升性能,但會致使更高的內存消耗。你幾乎確定不該該改變這個。 默認值:1000

44.queue_explicit_ gc_run_operation_threshold:在內存壓力下,僅適用於正常隊列的可調參數值,這是觸發垃圾收集器和其餘內存減小活動的閾值。低價值能夠下降性能,並且能夠提升性能,但會致使更高的內存消耗。你幾乎確定不該該改變這個。 默認值:1000

此外,許多插件能夠在配置文件中具備部分,名稱爲rabbitmq_plugin。咱們的維護插件記錄在如下位置

rabbitmq_management

rabbitmq_management_agent

rabbitmq_web_dispatch

rabbitmq_stomp

rabbitmq_shovel

rabbitmq_auth_backend_ldap

配置條目加密

能夠在RabbitMQ配置文件中加密敏感配置條目(例如密碼,包含URL的憑據)。代理在開始時解密加密的條目.請注意,加密配置條目不會使系統有意義地更安全。然而,它們容許RabbitMQ的部署符合各國的規定,要求在配置文件中不該以純文本形式顯示敏感數據。

加密值必須在Erlang加密元組內:{encrypted,...}。如下是默認用戶加密密碼的配置

[
  {rabbit, [
  {default_user, <<"guest">>},
  {default_pass,
{encrypted,
 <<"cPAymwqmMnbPXXRVqVzpxJdrS8mHEKuo2V+3vt1u/fymexD9oztQ2G/oJ4PAaSb2c5N/hRJ2aqP/X0VAfx8xOQ==">>
}
  },
  {config_entry_decoder, [
 {passphrase, <<"mypassphrase">>}
 ]}
]}
].

注意configentrydecoder密鑰與RabbitMQ用於解密加密值的密碼。密碼短語不須要在配置文件中進行硬編碼,它能夠在一個單獨的文件中。

[
  {rabbit, [
  ...
  {config_entry_decoder, [
 {passphrase, {file, "/path/to/passphrase/file"}}
 ]}
]}
].

當使用{passphrase,prompt}啓動時,RabbitMQ也能夠要求操做者輸入密碼

使用rabbitmqctl和encode命令加密值

rabbitmqctl encode '<<"guest">>' mypassphrase
{encrypted,<<"... long encrypted value...">>}
rabbitmqctl encode '"amqp://fred:secret@host1.domain/my_vhost"' mypassphrase
{encrypted,<<"... long encrypted value...">>}

若是要解密值,請添加--decode選項

rabbitmqctl encode --decode '{encrypted, <<"...">>}' mypassphrase
<<"guest">>
rabbitmqctl encode --decode '{encrypted, <<"...">>}' mypassphrase
"amqp://fred:secret@host1.domain/my_vhost"

能夠對不一樣類型的值進行編碼。上面的例子編碼了二進制文件(<<「guest」>>)和字符串(「amqp:// fred:secret@host1.domain/my_vhost」)。

加密機制使用PBKDF2從密碼短語中產生派生密鑰。默認散列函數爲SHA512,默認迭代次數爲1000.默認密碼爲AES 256 CBC

您能夠在配置文件中更改這些默認值:

[
  {rabbit, [
  ...
  {config_entry_decoder, [
 {passphrase, "mypassphrase"},
 {cipher, blowfish_cfb64},
 {hash, sha256},
 {iterations, 10000}
 ]}
]}
].

在命令行:

rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 \
 '<<"guest">>' mypassphrase
相關文章
相關標籤/搜索