日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rocketmq docker集群_【解构云原生】RocketMQ高可用方案调研及On K8S设计展望(下)...

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rocketmq docker集群_【解构云原生】RocketMQ高可用方案调研及On K8S设计展望(下)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文由作者授權網易云發布,未經許可,請勿轉載。

作者:李海燕,網易杭州研究院云計算技術部工程師

上文鏈接:【解構云原生】RocketMQ高可用方案調研及On K8S設計展望(上)

四、RocketMQ-On-K8S展望

4.1 Why on k8s

分布式中間件生命周期管理(部署和運維)十分復雜,作為使用方需要的是可以一鍵創建、刪除和自動運維的集群。K8S針對分布式有狀態中間件提供了Operator模式,中間件提供者開發Operator,業務側直接使用k8S應用市場通過聲明式yaml資源定義文件即可創建和管理中間件集群。

傳統RocketMQ集群面臨的問題

  • 資源利用不均衡,不能依據RocketMQ的使用率動態的對集群進行擴容、縮容操作,導致集群資源使用不是很均衡
  • 手動運維風險,集群資源規格變更和版本升級需要人工運維,沒有流程的規范和沉淀,這些操作也存在風險. 除了風險, 還會留下大量不規范的環境. 需要一套能夠覆蓋服務生命全周期的自動化框架,能夠清楚的看到目前RocketMQ集群的全景(音樂通過ansible解決了自動部署的問題)
  • 需要自研巡查、告警和控制臺等組件,基礎生態較差(開源控制臺功能較少)

基于K8S交付RocketMQ集群核心優勢

  • 提高資源利用率:能夠實現合理利用資源,實現資源共享,實現集群混部,并且能做到資源隔離,互相不影響;
  • 提高可用率,降低運維成本:高可用保障,部署合理性保障,覆蓋自動化運維全部能力,包括:部署、自動擴容、自動縮容、異常自動恢復、不能動態切換宿主機等能力;運維成本降低20%
  • 完善監控報警功能:完善的監控告警能力,資源監控、容器監控、Broker監控、消息監控等能力,完善的告警閾值規則判斷能力,能夠定義規則,并將告警及時發送給相關責任人
  • 提供完善的操作界面:集成到輕舟平臺,提供完善的API、CLI及管控頁面,能夠方便運維人員監控、管理集群

傳統的手動部署和規格變更嚴重依賴開發部署人員,很容易出錯,流程也很長,基于K8S交付中間件是一種全新的面向終態模式的軟件交付方式,解耦業務和中間件提供者,提高效率,節約成本

參考:面向 Kubernetes 編程:Kubernetes是下一代操作系統

4.2 How on k8s

RocketMQ-On-K8s需要能進行集群生命周期管理、故障自動運維、監控報警和物理集群遷移等功能,整體架構如下圖:

以Master/Slave+failover組件高可用方案為例進行討論,RocketMQ 集群部署需要有nameserver、broker和failover組件組成,且有部署順序要求,類似kafka和zk的依賴關系。

  • prometheus:提供基礎的監控,以及相關事件報警(operator產生的相關異常事件:包含本身以及實例)

相關資源

  • nameServer:提供名稱服務,無狀態節點,指定副本個數即可,存儲路由和commitLogOffset信息
  • Broker:提供消息存儲和轉發服務,有狀態,部署時指定配置文件(ConfigMap)
  • HAController:維護Broker全局狀態,根據QOS要求進行Broker主從切換
  • httpSite:存儲nameServer地址,供客戶端和broker等組件通過http協議獲取最新的nameServer地址

管控面高可用

為了滿足Operator的高可用要求,可采用Deployment 3副本來部署Operator,Operator通過ETCD來進行選主。

由于Operator本身不進行數據存儲,屬于無狀態節點,所以Operator本身的高可用相對而言較弱,最低保障是Operator掛掉好重新啟動能正常處理現有的事件。

數據面高可用

  • 單機房:引入HAController組件實現Broker的自動failOver
  • 多機房:暫不做討論

訪問架構

Operator核心邏輯(broker為例)

Broker集群按照業務區分,不同的業務clusterName不同。一個clusterName下多個group,一個group下broker分主從節點。

用戶需要在Broker的CR中指定nameServer http site地址以及其他Spec比如group個數,group下replicas等。

broker_controller的的Reconcile()邏輯流程圖如下:

注意:

  • broker組件代碼docker鏡像化管理
  • spec中定義broker主從節點個數,復制模式等
  • 準備brokerAliveTest.sh和brokerStart.sh等腳本供k8s使用

水平擴容:

  • 同一個broker集群增加新的主備節點相當于增加分片,同一個broker cluster增加節點就是水平擴容

垂直擴容:

  • 因為有主備,垂直擴容是先停slave,擴容完再操作master即可
  • failover組件完成主從切換,可以直接kill到master,等主從切換,也可以通過運維命令主動設置主從關系

五、總結

基于K8S交付是軟件行業新趨勢,網易杭州研究院云計算技術部基于網易輕舟中間件提供穩定高效的K8S及中間件服務,助力各產品線降低軟件開發成本,提高資源利用率。

本文重點是RocketMQ高可用方案調研,后續云計算技術部中間件組將采用與音樂、嚴選共建方式推出rocketmq-operator實現RocketMQ全自動生命周期管理,實現集團內RocketMQ標準化。在此也感謝調研過程中網易云音樂相關同事的大力支持和答疑。

相關閱讀推薦:

  • 【解構云原生】管控代碼減少80%,網易PaaS On Kubernetes實踐
  • 【解構云原生】基于Filebeat的日志采集服務設計與實踐
  • 【杭研大咖說】張小剛:PaaS on Kubernetes即將大規模應用
  • 【解構云原生】進擊的Serverless
  • 微服務實踐:我們離Service Mesh還有多遠
  • 網易云:云原生時代的指標監控利器-Prometheus

利益相關:網易輕舟中間件(基于 Kubernetes Operator 構建,提供數據庫、緩存、消息等企業級互聯網中間件)。

總結

以上是生活随笔為你收集整理的rocketmq docker集群_【解构云原生】RocketMQ高可用方案调研及On K8S设计展望(下)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。