gpt4 book ai didi

java - 将 Java 应用程序连接到 YouTube Vitess 数据库

转载 作者:行者123 更新时间:2023-12-01 09:13:24 28 4
gpt4 key购买 nike

我使用 DEPLOYMENTS 在 kubernetes 中部署了我的 java web 应用程序,并且能够扩展它并将其连接到数据库 POD,但后来我也想扩展数据库,但正如你所知,这在 kubernetes 中是不可能的,而且 MYSQL REPLICA 也不可能推荐用于生产。因此,我尝试了 vitess 并且能够扩展我的数据库,但不知道应该如何或在哪里创建我的 java web 应用程序部署/副本并通过 vtgate 将它们连接到数据库。还有另一种通过 kubernetes 扩展 mysql 数据库的方法吗?

最佳答案

需要注意的是,Vitess 不是一个透明代理,您可以在连接级别插入应用程序和 MySQL 之间。 Vitess 将一组 MySQL 服务器转变为集群数据库,它要求您针对 Vitess 驱动程序而不是普通的 MySQL 驱动程序构建应用程序。

如果您已经在使用 JDBC,那么除了连接管理之外,您不需要进行大量代码更改,因为有 Vitess implementation of the JDBC interface 。但是,Vitess 可能尚不支持某些查询构造,因此您可能需要将它们重写为支持的等效形式。

一旦您的应用程序与 Vitess 兼容,在 Kubernetes 中部署它将与您之前所做的相同,只是您将应用程序 Pod 指向 connect to the VTGate service via DNS .

至于在没有 Vitess 的 Kubernetes 中扩展 MySQL 的其他方法,Kubernetes 1.5 中有一个重要的新功能进入 Beta 版,称为 StatefulSet,它将帮助您扩展 MySQL 等数据库,类似于 Deployment 扩展无状态 Pod 的方式。通过利用 StatefulSet,Vitess 本身也将变得更方便在 Kubernetes 中进行扩展。

但是,带有纯 MySQL 的 StatefulSet 主要只能通过增加从属设备数量来帮助您扩展只读流量。如果您需要扩展写入流量,您可能需要实现应用程序定义的分片。到那时,您的应用程序所需的更改几乎肯定会比您修改它以支持 Vitess 时要多得多。

关于java - 将 Java 应用程序连接到 YouTube Vitess 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775621/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com