当前位置:首页 > 报告详情

携程NebulaGraph图数据库平台建设 - 郑皓月.pdf

上传人: 学*** 编号:187765 2024-12-26 15页 2.36MB

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%

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了携程的NebulaGraph图数据库平台建设,包括其架构、部署策略、客户端改造、调优实践和未来展望。 在架构方面,Nebula平台采用Kubernetes Operator部署,包含Graph, Meta, Storage三个Statefulset。Meta Address根据集群类型组织为FQDN(单机房、蓝绿集群)或DNS(三机房集群)。Pod中包含一个Nebula container和一个sidecar container用于收集指标。 在部署策略方面,单机房部署适用于非核心应用,而三中心部署适用于核心应用,可实现机房级容灾。 客户端改造方面,实现了读写分离,支持就近访问,减少网络开销。同时,还实现了分流、故障切换和Session管理优化。 调优实践方面,针对国际机票拆票集群进行了优化,通过调整write_buffer_size、max_write_buffer_number等参数,实现了在不扩容节点情况下新增一种边类型写入,QPS增加23%。 未来展望方面,NebulaGraph将实现故障感知自动切换,并通过Raft listener实现集群间数据同步。 总的来说,NebulaGraph图数据库平台建设在架构设计、部署策略、客户端改造和调优实践等方面都取得了显著的成果,并将继续在故障感知和数据同步等方面进行优化。
Nebula Graph如何实现读写分离? 如何优化Nebula客户端的Session管理? Nebula Graph的未来发展有哪些展望?
客服
商务合作
小程序
服务号
折叠