YugabyteDB是否提供集群拓扑感知的Golang YSQL驱动?
YugabyteDB Go语言拓扑感知YSQL驱动相关说明
官方目前已经提供适配Go语言的原生集群拓扑感知YSQL驱动,能力和已经推出的拓扑感知JDBC驱动对齐,不需要额外在集群前端部署负载均衡器即可实现原生的集群节点路由、故障自动切换。
- 驱动底层基于Go生态广泛使用的PostgreSQL驱动
pgx做适配扩展,完全兼容pgx原生接口,现有基于pgx开发的Go业务几乎不需要修改代码就能接入。 - 核心拓扑感知能力包括:
- 自动节点发现:初始连接时仅需配置任意一个集群可达节点地址,驱动会自动拉取全集群所有健康节点的地址列表,不需要手动维护全量节点配置
- 就近路由:支持按集群部署的地域、可用区拓扑标签做路由优先级配置,优先连接同地域/同可用区节点,降低跨网络访问延迟
- 内置连接负载均衡:新建连接会被均匀分发到符合拓扑规则的健康节点,不需要依赖外部负载均衡组件
- 故障自动切换:当连接的节点出现故障时,驱动会自动将连接重定向到其他健康节点,减少业务侧感知到的连接故障
- 关于GORM适配:公开文档里的标准GORM集成方案确实是通用适配实现,没有内置拓扑感知能力。如果需要在GORM中使用拓扑感知能力,只需要将GORM底层依赖的YSQL驱动替换为官方提供的带拓扑感知能力的Go驱动即可,上层GORM的业务逻辑不需要做任何调整,拓扑路由、负载均衡、故障切换能力都由驱动层自动完成。
- 使用时只需要在数据库连接串中开启拓扑感知开关,配置好对应的优先访问地域、可用区标签参数即可正常使用。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

