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消息都會被記錄)。目前有四類定義。其他,目前未分類的事件始終被記錄。 類別是:

    channel -所有與AMQP頻道有關的活動.

    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)

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

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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM