《攜程NebulaGraph圖數據庫平臺建設 - 鄭皓月.pdf》由會員分享,可在線閱讀,更多相關《攜程NebulaGraph圖數據庫平臺建設 - 鄭皓月.pdf(15頁珍藏版)》請在三個皮匠報告上搜索。
1、https:/nebula-攜程NebulaGraph圖數據庫平臺建設系統研發部鄭皓月https:/nebula-目錄Nebula平臺架構客戶端改造系統調優實踐未來展望1234https:/nebula-Nebula平臺架構 Kubernetes Operator部署CRD包含Graph,Meta,Storage三個StatefulsetMeta Address根據集群類型組織為FQDN(單機房、藍綠集群)或DNS(三機房集群)Pod中包含一個Nebula container和一個sidecar container用于收集指標Paas:Nebula集群申請平臺InfinityStones:運維
2、支撐平臺Qconfig:配置中心SiteController:流量分發控制平臺Shamu:集群管理平臺VictoriaMetrics:時序數據庫Grafana:監控告警平臺https:/nebula-Nebula平臺架構 隔離級別 集群內多Space租戶單集群單Space租戶隔離等級高,宿主機故障影響范圍小運維較復雜,依賴外部調度資源利用率較低隔離等級低,Space之間存在資源競爭宿主機故障影響范圍廣運維簡單,一次部署重復使用資源利用率高https:/nebula-單機房部署Nebula平臺架構 部署策略適用于非核心應用優:多副本保障 集群內部節點不存在跨機房通信缺:機房級宕機導致服務不可用
3、與應用之間存在跨機房調用 三中心部署適用于核心應用優:多副本保障 數據強一致性 機房級容災缺:集群內部節點跨機房通信導致性能損耗https:/nebula-跨域多活部署Nebula平臺架構 部署策略適用于核心應用優:多副本保障 機房級容災 集群內部節點不存在跨機房通信 應用可就近訪問減少網絡開銷缺:集群間數據一致性需由應用端保證應用雙寫保證集群間數據一致性https:/nebula-Nebula平臺架構 部署策略藍綠部署三機房部署https:/nebula-Nebula客戶端改造 讀寫分離面向IDC和訪問策略構造nebulaPool,根據權重輪詢訪問,實現負載均衡讀寫分離,支持就近訪問,減少網
4、絡開銷自動剔除故障節點,避免再次使用https:/nebula-Nebula客戶端改造 分流、故障切換Qconfig注冊集群配置配置修改熱推送應用端SiteController自主修改訪問路由https:/nebula-Nebula客戶端改造 Session管理優化:SessionQueue實現Session數量和版本管理Borrow-and-return方式避免共用Session問題Session預熱Session復用痛點:原生客戶端多線程訪問Session線程不安全Session過期或失效需用戶自行處理https:/nebula-Nebula客戶端改造 語句生成器封裝MATCH p=(v:
5、playername:Tim Duncan,nickname:null,male:true)-*3-()RETURN p;聲明式語言Cypher,nGQL優:類SQL風格,易上手缺:不易埋點監控過程式語句生成器封裝,接入公司可觀測平臺Builder.match().path(p).vertex(v).hasTag(player).propertyV2(name,Tim Duncan,DataType.String().property(nickname,null,DataType.String().property(male,Boolean.TRUE.toString(),DataType.B
6、oolean().edge(,Direction.OUTGOING).pathLength(3).vertex().ret(p).build().showNGQL();https:/nebula-調優實踐 國際機票拆票集群FRA-AWS 集群配置Graph 4c16g10g*8 t3.xlarge$0.185/hStorage 16c128g600g*7 r5ad.4xlarge$1.048/h現狀:邊寫入QPS 2w+,邊刪除QPS 300-1000,宿主機利用率已達50%+期望:不擴容節點情況下新增一種邊類型寫入,QPS增加23%write_buffer_size 256Mmax_writ
7、e_buffer_number 8min_write_buffer_number_to_merge 4 https:/nebula-調優實踐 國際機票拆票集群level0_slowdown_writes_trigger 20level0_file_num_compaction_trigger 10level0_stop_writes_trigger 40rocksdb_rate_limit 20M/s最終成果 insert edge rate增漲約700,storage cpu無明顯增長https:/nebula-未來展望故障感知自動切換Raft listener實現集群間數據同步GitHub:vesoft-inc/nebulaTwitter:NebulaGraphFacebook:NebulaGraph微信公眾號開源項目https:/nebula-https:/nebula-https:/discuss.nebula-Q&A