黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 rabbitmq部署的生產(chǎn)指南

rabbitmq部署的生產(chǎn)指南

更新時(shí)間:2023-02-17 16:57:01 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4632次

像RabbitMQ這樣的數(shù)據(jù)服務(wù)通常有許多可調(diào)參數(shù)。一些配置對(duì)開(kāi)發(fā)有很大的意義,但并不適合生產(chǎn),本指南旨在為此提供幫助

虛擬主機(jī)

例如,在單租戶環(huán)境中,當(dāng)您的RabbitMQ集群專門(mén)為生產(chǎn)中的單個(gè)系統(tǒng)供電時(shí),使用默認(rèn)的虛擬主機(jī)(/)是完全正確的

在多租戶環(huán)境中,為每個(gè)租戶/環(huán)境使用單獨(dú)的虛擬主機(jī),例如project1_development, project1_production,project2_development和 project2_production等

用戶

對(duì)于生產(chǎn)環(huán)境,請(qǐng)刪除默認(rèn)用戶(guest),默認(rèn)用戶只能從本地主機(jī)默認(rèn)連接,因?yàn)樗哂斜娝苤膽{據(jù)。不要啟用遠(yuǎn)程連接,而應(yīng)考慮使用具有管理權(quán)限和生成密碼的單獨(dú)用戶

建議每個(gè)應(yīng)用程序使用一個(gè)單獨(dú)的用戶。例如,如果您有一個(gè)移動(dòng)應(yīng)用程序,一個(gè)Web應(yīng)用程序和一個(gè)數(shù)據(jù)聚合系統(tǒng),您將有3個(gè)獨(dú)立的用戶。這使得許多事情更容易:將客戶端連接與應(yīng)用程序關(guān)聯(lián)

權(quán)限控制

認(rèn)證和授權(quán)通常會(huì)混淆或互換使用。這是錯(cuò)誤的,在RabbitMQ中,兩者是分開(kāi)的。為了簡(jiǎn)單起見(jiàn),我們將認(rèn)證定義為“標(biāo)識(shí)用戶是誰(shuí)”,授權(quán)定義為“確定用戶是什么,不允許做什么”

默認(rèn)的虛擬主機(jī)和用戶

當(dāng)服務(wù)器首次開(kāi)始運(yùn)行,并檢測(cè)到其數(shù)據(jù)庫(kù)未初始化或被刪除時(shí),它將使用一下資源初始化一個(gè)新的數(shù)據(jù)庫(kù)

一個(gè)名為 /虛擬主機(jī)

一個(gè)名為guest的用戶,默認(rèn)密碼為guest,被授予對(duì)/虛擬主機(jī)的完全訪問(wèn)權(quán)限

明智的做法是刪除guest用戶或更改密碼,特別是在公共網(wǎng)絡(luò)上訪問(wèn)

默認(rèn)情況下guest用戶被禁止遠(yuǎn)程連接到代理,它只能通過(guò)localhost連接。我們創(chuàng)建的其他用戶默認(rèn)情況下沒(méi)有這種限制

如果我們希望允許guest用戶從遠(yuǎn)程主機(jī)連接,則應(yīng)將loopback_users配置設(shè)置 為 none,如下:

1loopback_users = none

權(quán)限如何工作

當(dāng)一個(gè)RabbitMQ客戶端建立到一個(gè)服務(wù)器的連接時(shí),它指定了一個(gè)虛擬主機(jī)。此時(shí)執(zhí)行第一級(jí)訪問(wèn)控制,服務(wù)器檢查用戶是否有權(quán)訪問(wèn)虛擬主機(jī),否則拒絕連接嘗試

資源(即交換和隊(duì)列)在特定虛擬主機(jī)內(nèi)被命名為實(shí)體;當(dāng)對(duì)資源執(zhí)行某些操作時(shí),強(qiáng)制執(zhí)行第二級(jí)訪問(wèn)控制

RabbitMQ在資源上有配置、寫(xiě)入、讀取操作
                配置:創(chuàng)建或銷(xiāo)毀資源,或更改其行為
                寫(xiě): 寫(xiě)入消息到資源
                讀: 檢索資源的消息

內(nèi)存

默認(rèn)情況下,當(dāng)RabbitMQ檢測(cè)到使用的內(nèi)存超過(guò)40%(由操作系統(tǒng)報(bào)告)時(shí),將不會(huì)接收任何消息:{vm_memory_high_watermark,0.4},這是一個(gè)安全的默認(rèn)值

在修改此值應(yīng)該小心,即使主機(jī)是專用的RabbitMQ節(jié)點(diǎn),因?yàn)槿绻麤](méi)有足夠的空閑系統(tǒng)內(nèi)存,將會(huì)對(duì)操作系統(tǒng)交換造成不利影響,甚至?xí)?dǎo)致RabbitMQ進(jìn)程終止

調(diào)整默認(rèn)vm_memory_high_watermark時(shí)的一些建議

托管RabbitMQ的節(jié)點(diǎn)應(yīng)始終具有至少128MB的可用內(nèi)存

推薦的vm_memory_high_watermark范圍是 0.40到0.66

值不要超過(guò)0.7。操作系統(tǒng)和文件系統(tǒng)必須至少保留30%的內(nèi)存,否則性能可能因?qū)ず舳鴩?yán)重降級(jí)

比如修改配置調(diào)整為0.6,編輯rabbitmq.conf

vm_memory_high_watermark.relative = 0.6

磁盤(pán)空間

disk_free_limit默認(rèn)值是50MB

{disk_free_limit,{mem_relative,1.0}}是最小推薦值,和內(nèi)存的容量一樣大

例如,在專用于具有4GB系統(tǒng)內(nèi)存的RabbitMQ的主機(jī)上,如果可用磁盤(pán)空間低于4GB,所有發(fā)布者將被阻止,并且不會(huì)接收新消息。隊(duì)列將需要被排空,通常由消費(fèi)者,在發(fā)布之前將被允許恢復(fù)

{disk_free_limit,{mem_relative,1.5}}是一個(gè)更安全的產(chǎn)品價(jià)值

在具有4GB內(nèi)存的RabbitMQ節(jié)點(diǎn)上,如果可用磁盤(pán)空間低于6GB,則所有新消息都將被阻止,直到磁盤(pán)警報(bào)清除

{disk_free_limit,{mem_relative,2.0}}是最保守的產(chǎn)品價(jià)值,我們想不出任何理由使用更高的產(chǎn)品。如果您希望RabbitMQ擁有所有需要的磁盤(pán)空間,編輯rabbitmq.conf,比如修改配置調(diào)整為2G

disk_free_limit.absolute = 2GB

打開(kāi)文件句柄限制

保證您的環(huán)境至少允許有效的RabbitMQ用戶使用至少50K的開(kāi)放文件描述符,包括在開(kāi)發(fā)環(huán)境中

監(jiān)控

強(qiáng)烈建議監(jiān)視系統(tǒng)的幾個(gè)方面,從基礎(chǔ)架構(gòu)和內(nèi)核度量到RabbitMQ到應(yīng)用程序級(jí)度量。雖然監(jiān)控需要在時(shí)間上進(jìn)行前期投資,但在提前(或根本)解決問(wèn)題方面非常有效。

參考zabbix監(jiān)控(http://blog.thomasvandoren.com/monitoring-rabbitmq-queues-with-zabbix.html)

日志收集

強(qiáng)烈建議所有RabbitMQ節(jié)點(diǎn)和應(yīng)用程序(如果可能的話)的日志都被收集和匯總。日志對(duì)于調(diào)查不尋常的系統(tǒng)行為至關(guān)重要

節(jié)點(diǎn)時(shí)間同步

節(jié)點(diǎn)時(shí)間同步

網(wǎng)絡(luò)配置

TCP偵聽(tīng)器配置接口和端口

listeners.tcp.1 = 192.168.1.99:5672

將RabbitMQ配置為僅在IPv4和IPv6上的本地主機(jī)上偵聽(tīng)(雙協(xié)議)

listeners.tcp.1 = 127.0.0.1:5672
listeners.tcp.2 = :: 1:5672

TCP緩沖區(qū)大小

這是關(guān)鍵的可調(diào)參數(shù)之一。每個(gè)TCP連接都有為其分配的緩沖區(qū)。一般來(lái)說(shuō),這些緩沖區(qū)越大,每個(gè)連接使用的內(nèi)存就越多,吞吐量越好

在Linux系統(tǒng)上,操作系統(tǒng)默認(rèn)會(huì)自動(dòng)調(diào)整TCP緩沖區(qū)大小,通常在80-120KB之間

可以使用rabbit.tcp_listen_options, rabbitmq_mqtt.tcp_listen_options, rabbitmq_amqp1_0.tcp_listen_options和相關(guān)的配置項(xiàng)來(lái)增加緩沖區(qū)大小

以下示例將AMQP 0-9-1連接的TCP緩沖區(qū)設(shè)置為192 KiB(請(qǐng)注意,將發(fā)送和接收緩沖區(qū)大小設(shè)置為不同的值是危險(xiǎn)的,不推薦使用):即每個(gè)連接使用的RAM

tcp_listen_options.backlog = 128
tcp_listen_options.nodelay = true
tcp_listen_options.linger.on = true
tcp_listen_options.linger.timeout = 0
tcp_listen_options.sndbuf = 196608 
tcp_listen_options.recbuf = 196608

有些環(huán)境中每個(gè)節(jié)點(diǎn)持續(xù)并發(fā)連接數(shù)量比吞吐量更重要,因此需要為每個(gè)工作負(fù)載找到吞吐量和每個(gè)連接的RAM使用量之間的最佳值,不建議低于8K

連接握手超時(shí)

RabbitMQ的連接握手超時(shí),默認(rèn)10秒。當(dāng)客戶端運(yùn)行在嚴(yán)重受限的環(huán)境中時(shí),可能需要增加超時(shí)。這可以通過(guò)rabbit.handshake_timeout(毫秒)完成:

handshake_timeout = 20000

OS級(jí)調(diào)整

fs.file-MAX                     內(nèi)核將分配的最大文件數(shù)量
net.ipv4.ip_local_port_range    本地IP端口范圍,定義為一對(duì)值。范圍必須為并發(fā)連接的峰值數(shù)量提供足夠的條目
net.ipv4.tcp_tw_reuse           啟用時(shí),允許內(nèi)核在TIME_WAIT 狀態(tài)下重新使用套接字
net.ipv4.tcp_fin_timeout        將此值降低到5-10會(huì)減少關(guān)閉連接保持TIME_WAIT狀態(tài)的時(shí)間。推薦用于預(yù)計(jì)大量并發(fā)連接的情況。
net.core.somaxconn              偵聽(tīng)隊(duì)列的大小(同時(shí)建??立多少個(gè)連接)。默認(rèn)值是128.增加到4096或更高,以支持入站連接突發(fā),例如,當(dāng)客戶端重新連接時(shí)
net.ipv4.tcp_max_syn_backlog    記錄的連接請(qǐng)求的最大數(shù)量尚未從連接客戶端收到確認(rèn)。默認(rèn)值為128,最大值為65535.當(dāng)優(yōu)化吞吐量時(shí),建議使用4096和8192開(kāi)始值
net.ipv4.conf.default.rp_filter 啟用反向路徑過(guò)濾。如果IP地址欺騙 不是您的系統(tǒng)所關(guān)心的,請(qǐng)將其禁用
 
tcp_listen_options.nodelay      設(shè)置為true時(shí),禁用 Nagle的算法。默認(rèn)是真的。強(qiáng)烈建議大多數(shù)用戶
tcp_listen_options.sndbuf       默認(rèn)值由OS自動(dòng)調(diào)整,通常在現(xiàn)代Linux版本的88 KiB至128 KiB范圍內(nèi)。增加緩沖區(qū)大小可提高每個(gè)連接的消費(fèi)者吞吐量和RAM使用量。減少有相反的效果
tcp_listen_options.recbuf       默認(rèn)值的效果與rabbit.tcp_listen_options.sndbuf類似,但是對(duì)于發(fā)布者和協(xié)議操作來(lái)說(shuō)一般
tcp_listen_options.backlog      未接受的TCP連接隊(duì)列的最大大小。達(dá)到這個(gè)尺寸時(shí),新的連接將被拒絕。對(duì)于具有數(shù)千個(gè)并發(fā)連接和可能的批量客戶端重新連接的環(huán)境,設(shè)置為4096或更高
tcp_listen_options.keepalive    當(dāng)設(shè)置為true時(shí),啟用TCP保持活動(dòng)(見(jiàn)上文)。默認(rèn)是false。對(duì)于連接可以長(zhǎng)時(shí)間閑置(至少10分鐘)的環(huán)境有意義,但仍然建議使用心跳
 
TCP Keepalives
    net.ipv4.tcp_keepalive_time = 60
    net.ipv4.tcp_keepalive_intvl = 15
    net.ipv4.tcp_keepalive_probes = 4
    TCP包含一個(gè)類似于心跳(aka keepalive)的機(jī)制,在消息傳遞協(xié)議和上面的網(wǎng)絡(luò)核對(duì)超時(shí)(TCP tickal timeout)中包含TCP保持活動(dòng)。由于默認(rèn)設(shè)置不足,TCP Keepalive通常不會(huì)按照預(yù)期的方式工作:需要很長(zhǎng)時(shí)間(例如,一個(gè)小時(shí)或更長(zhǎng)時(shí)間)才能檢測(cè)到死亡的對(duì)等方。但是,通過(guò)調(diào)整,它們可以達(dá)到與心跳相同的目的,并且有意或無(wú)意地清除陳舊的TCP連接,例如選擇不使用心跳的客戶端。下面是TCP keepalive的sysctl配置示例,它認(rèn)為T(mén)CP連接在120秒后死機(jī)或不可達(dá)(連接空閑60秒后每15秒4次嘗試):
    在RabbitMQ操作員無(wú)法控制應(yīng)用程序設(shè)置或使用的客戶端庫(kù)的環(huán)境中,TCP Keepalive可以成為有用的附加防御機(jī)制。

分區(qū)處理策略

在投入生產(chǎn)之前 選擇分區(qū)處理策略非常重要

強(qiáng)烈建議不要在網(wǎng)絡(luò)分區(qū)的環(huán)境中部署RabbitMQ集群

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"rabbitmq部署的生產(chǎn)指南",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 丝袜国产视频 | 精品一区二区三区高清免费观看 | 97欧美| 久久午夜羞羞影院免费观看 | 久青草国产97香蕉在线视频xx | 男女午夜爽爽大片免费 | 国产丝袜护土调教在线视频 | 亚洲人成在线观看 | 大杳焦伊人久久综合热 | 免费播放国产性色生活片 | 国产精品日韩欧美 | 黄网站www | 曰批女人视频在线观看 | 国产97视频 | 国产精品国产三级国产an不卡 | 日韩免费网址 | 国产69精品久久久久9牛牛 | 图片区亚洲色图 | 欧美乱妇视频 | 亚洲手机看片 | 国产精品免费一区二区三区四区 | 国产第3页 | 亚洲大尺度视频 | 天天弄天天操 | 一本大道香蕉视频在线观看 | 欧美影片一区二区三区 | 日韩在线专区 | 天天综合天天做天天综合 | 欧美乱大交xxxxxbbb | xxxx日本69xxxxx | 亚洲欧美在线不卡 | 日韩在线影院 | 三级视频网站 | 亚洲成a人片在线观看 欧美 | 国产无遮挡男女羞羞影院在线播放 | 成人午夜视频免费观看 | www免费| 欧美劲爆第一页 | free极度另类性欧美 | 日本精品视频一区 | 2021国产精品午夜久久 |