隨筆 - 41  文章 - 7  trackbacks - 0
          <2016年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          原文:http://www.rabbitmq.com/production-checklist.html
          介紹
          像RabbitMQ這樣的數據服務經常有許多的可調參數.某些配置對于開發環境來說是意義的,但卻不適合產品環境. 單個配置不能滿足每種使用情況. 因此,在進入產品環境時,評估配置是很重要的. 這就是本指南提供幫助的目的.
          虛擬主機,用戶,權限
          Virtual Hosts
          在單租戶環境中,例如,當RabbitMQ在產品環境中只致力于為某單個系統服務時,使用默認虛擬主機 (/)是非常好的.
          在多租戶環境中,為每個租戶/環境使用單獨的虛擬主機,如:project1_developmentproject1_productionproject2_developmentproject2_production, 等等.
          用戶
          在產品環境中,刪除默認用戶(guest). 默認情況下,默認用戶只能通過本地來連接, 因為它有眾所周的憑證.為了不啟用遠程連接,可考慮使用帶有administrative權限和生成密碼的獨立用戶來代替
          強烈建議在每個程序中使用單獨的用戶,例如,如果你有一個mobile app, 一個Web app, 和一個數據聚合系統, 你最好有3個獨立的用戶. 這會使許多事情變得更簡單:
          • 使 client 連接與程序相關聯
          • 使用細粒度的權限
          • 憑據翻滾(如. 周期性地或遭到破壞的情況下)
          如果有許多相同應用程序的實例,有一個更好安全性權衡(每一個實例的憑據)和方便的配置(共享一些或所有實例之間的一組憑據)。物聯網的應用涉及很多客戶執行相同或相似的功能,有固定的IP地址,它可以使用X509證書或源IP地址范圍驗證。
          資源限制
          當消費者跟不上的時候,RabbitMQ 使用Resource-driven alarms (資源驅動報警)來壓制(throttle)發布者. 在進入生產之前評估資源限制配置是重要的。
          內存
          默認情況下, RabbitMQ會使用可用RAM的40%. 這專門針對于那些運行RabbitMQ的節點,通常情況下,提高此限制是合理的. 然而,應注意的是,操作系統和文件系統的緩存也需要內存來運行。如果不這樣做,會由于操作系統交換導致嚴重的吞吐量下降,甚至導致操作系統會終止RabbitMQ過程的運行。
          下面是一些基本的指導方針,用于確定推薦的RAM limit:
          • 至少有128 MB
          • 當RAM達到4GB時,可配置為75%的RAM限制
          • 當RAM達到4GB-8GB時,可配置為80%的RAM限制
          • 當RAM達到8GB-16GB時,可配置為85%的RAM限制
          • 當RAM大于16GB時,可配置為90%的RAM限制
          高于0.9的值是很危險的,不推薦配置
          可用磁盤空間
          必要的可用磁盤空間可防止disk space alarms.(磁盤空間報警) .默認情況下,RabbitMQ始終需要 50 MiB的可用磁盤空間.在大多數Linux發行者,根據開發者的經驗,可將放置到小分區的/var 目錄下. 然而,對于產品環境來說,這不是一個推薦值, 因為它們可能明顯的更高的RAM 限制. 下面是一些基本的指導方針,如何確定有多少空閑磁盤空間是推薦的:
          • 至少有2 GB
          • 當限制為1到8GB的RAM時,可配置為RAM限制的50%
          • 當限制為8到32GB的RAM時,可配置為RAM限制的40%
          • 當限制超過32GB的RAM時,可配置為RAM限制的30%
          rabbit.disk_free_limit 配置可通過 {mem_relative, N}來完成,使其相對于RAM限制的百分比來計算. 例如, 使用{mem_relative, 0.5} 設為50%, {mem_relative, 0.25}設為25%等等.
          打開文件句柄限制
          操作系統限制了并發打開的文件句柄的最大數量,其中包括網絡套接字。確保您的限制設置得足夠高,以允許預期數量的并發連接和隊列。
          對于有效RabbitMQ用戶,確保你的環境允許至少50K的打開文件描述符,包括開發環境。
          作為經驗法則,并發連接數的95%乘以2再加上隊列的總數可以計算出打開文件句柄限制( multiple the 95th percentile number of concurrent connections by 2 and add total number of queues to calculate recommended open file handle limit). 值高于500K也是恰當地,它不會消耗太多的硬件資源,因此建議在生產環境中設置. 查看Networking guide 來了解更多信息.
          安全注意事項
          用戶和權限
          查看vhosts, users, 和 證書章節.
          Erlang Cookie
          在Linux 和BSD 系統中, 有必要限制只有運行RabbitMQ和rabbitmqctl工具的用戶才能訪問Erlang cookie.
          TLS
          如果有可能,我們建議使用LS connections, 至少要加密通信. Peer驗證(身份驗證)也被推薦 . 開發和QA 環境可使用self-signed TLS certificates. 當RabbitMQ和所有程序運行在可信網絡或隔離(使用像VMware NSX技術)環境中時,自簽名證書可以應用于產品環境.
          雖然RabbitMQ試圖提供一個默認的安全TLS 配置 (如.SSLv3是禁用的), 我們推薦評估TLS 版本和密碼套件. 請參考TLS guide 了解更多信息.
          網絡配置
          產品環境需要調整網絡配置.請參考 Networking Guide 來了解細節.
          自動連接恢復
          某些client libraries, 例如 Java.NET, 和 Ruby, 在網絡失敗后,支持自動連接恢復.如果client提供了這種功能,建議使用它來代替你自己的恢復機制.
          集群化考慮
          集群大小
          當確定集群大小時,需要重點考慮下面的幾個因素:
          • 希望的吞吐量
          • 希望的復制( mirrors的數目)
          • 數據局部性
          因為客戶端可以連接到任何節點,RabbitMQ可能需要進行集群間消息路由和內部操作。嘗試使消費者和生產者連接到同一個節點,如果可能的話:這將減少節點間的流量。 使消費者連接到持有隊列的master上(可使用HTTP API進行推斷),也是有幫助的.當考慮到數據局部性時,總的集群吞吐量可以達到不平凡的量
          對于大多數環境中,鏡像超過一半的群集節點是足夠的。建議使用一個奇數的節點(3,5,等等)的集群。
          分區處理策略
          在用于產品環境之前,挑選partition handling strategy 是很重要的. 有疑問時,使用theautoheal策略。
          posted on 2016-07-30 16:47 胡小軍 閱讀(1660) 評論(0)  編輯  收藏 所屬分類: RabbitMQ
          主站蜘蛛池模板: 新安县| 安乡县| 云龙县| 石家庄市| 汾西县| 永福县| 美姑县| 古田县| 桂阳县| 阳江市| 孝昌县| 兴宁市| 亳州市| 长子县| 安康市| 高青县| 佛学| 夏邑县| 格尔木市| 将乐县| 荃湾区| 池州市| 精河县| 兰考县| 白城市| 富顺县| 城步| 即墨市| 临泽县| 滁州市| 四川省| 晋中市| 衢州市| 贺州市| 当雄县| 长武县| 科技| 宁强县| 贵州省| 虞城县| 乐平市|