将 java 应用程序连接到 YouTube Vitess 数据库
Connect java application to YouTube Vitess database
我使用 DEPLOYMENTS 在 kubernetes 中部署了我的 java web 应用程序,并且能够扩展它并将其连接到数据库 POD,但后来我也想扩展数据库,但正如你所知,这是不可能的不建议将 kubernetes 和 MYSQL REPLICA 用于生产环境。所以我尝试了 vitess 并能够扩展我的数据库,但不知道我应该如何或在哪里创建我的 java Web 应用程序 DEPLOYMENTS/REPLICAS 并通过 vtgate 将它们连接到数据库。
还有另一种通过 kubernetes 扩展 mysql 数据库的方法吗?
请务必注意,Vitess 不是透明代理,您可以在连接级别将其插入应用和 MySQL 之间。 Vitess 将一组 MySQL 个服务器变成一个集群数据库,它要求您根据 Vitess 驱动程序而不是普通的 MySQL 驱动程序构建您的应用程序。
如果您已经在使用 JDBC,那么除了连接管理之外,您不需要进行大量代码更改,因为有一个 Vitess implementation of the JDBC interface。但是,Vitess 可能还不支持某些查询结构,因此您可能需要将它们重写为受支持的等效形式。
一旦您的应用与 Vitess 兼容,将它部署到 Kubernetes 中将与您之前所做的相同,只是您将应用 pods 指向 connect to the VTGate service via DNS。
至于在没有 Vitess 的情况下在 Kubernetes 中扩展 MySQL 的其他方法,在 Kubernetes 1.5 中有一个进入 Beta 版的重要新功能,称为 StatefulSet,它将帮助您像 MySQL 这样扩展数据库,类似于部署可以无状态扩展 Pods。通过利用 StatefulSet,Vitess 本身也将更方便地在 Kubernetes 中扩展。
但是,具有纯 MySQL 的 StatefulSet 主要只会通过增加从属节点的数量来帮助您扩展只读流量。如果您需要扩展写入流量,您可能需要实施应用程序定义的分片。到那时,您的应用程序所需的更改几乎肯定会比您修改它以支持 Vitess 多得多。
我使用 DEPLOYMENTS 在 kubernetes 中部署了我的 java web 应用程序,并且能够扩展它并将其连接到数据库 POD,但后来我也想扩展数据库,但正如你所知,这是不可能的不建议将 kubernetes 和 MYSQL REPLICA 用于生产环境。所以我尝试了 vitess 并能够扩展我的数据库,但不知道我应该如何或在哪里创建我的 java Web 应用程序 DEPLOYMENTS/REPLICAS 并通过 vtgate 将它们连接到数据库。 还有另一种通过 kubernetes 扩展 mysql 数据库的方法吗?
请务必注意,Vitess 不是透明代理,您可以在连接级别将其插入应用和 MySQL 之间。 Vitess 将一组 MySQL 个服务器变成一个集群数据库,它要求您根据 Vitess 驱动程序而不是普通的 MySQL 驱动程序构建您的应用程序。
如果您已经在使用 JDBC,那么除了连接管理之外,您不需要进行大量代码更改,因为有一个 Vitess implementation of the JDBC interface。但是,Vitess 可能还不支持某些查询结构,因此您可能需要将它们重写为受支持的等效形式。
一旦您的应用与 Vitess 兼容,将它部署到 Kubernetes 中将与您之前所做的相同,只是您将应用 pods 指向 connect to the VTGate service via DNS。
至于在没有 Vitess 的情况下在 Kubernetes 中扩展 MySQL 的其他方法,在 Kubernetes 1.5 中有一个进入 Beta 版的重要新功能,称为 StatefulSet,它将帮助您像 MySQL 这样扩展数据库,类似于部署可以无状态扩展 Pods。通过利用 StatefulSet,Vitess 本身也将更方便地在 Kubernetes 中扩展。
但是,具有纯 MySQL 的 StatefulSet 主要只会通过增加从属节点的数量来帮助您扩展只读流量。如果您需要扩展写入流量,您可能需要实施应用程序定义的分片。到那时,您的应用程序所需的更改几乎肯定会比您修改它以支持 Vitess 多得多。