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

问题描述:

我使用DEPLOYMENTS在kubernetes中部署了我的java web应用程序,并且能够将其扩展并将其连接到数据库POD,但是后来我想扩展数据库,但如您所知不可能在kubernetes和MYSQL REPLICA不推荐用于生产。所以我尝试了vitess,并能够扩展我的数据库,但不知道应该如何创建我的Java Web应用程序部署/ REPLICAS,并通过vtgate将它们连接到数据库。 是否有另一种通过kubernetes来扩展mysql数据库的方法?将Java应用程序连接到YouTube Vitess数据库

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

如果您已经在使用JDBC,除了连接管理之外,您不需要更改很多代码,因为有Vitess implementation of the JDBC interface。但是,Vitess可能还不支持某些查询结构,因此您可能需要将它们重写为支持的等效表单。

一旦您的应用程序与Vitess兼容,将其部署到Kubernetes中将与以前相同,除非您将应用程序窗格指向connect to the VTGate service via DNS

至于在没有Vitess的情况下在Kubernetes中扩展MySQL的其他方法,在Kubernetes 1.5中输入一个名为StatefulSet的重要新功能可以帮助您像MySQL那样扩展数据库,类似于部署可以扩展无状态Pod的方式。利用StatefulSet,Vitess本身也将变得更方便在Kubernetes中扩展。

但是,使用纯MySQL的StatefulSet大多只会帮助您通过增加从服务器的数量来扩展只读流量。如果您需要扩展写入流量,则可能需要实施应用程序定义的分片。此时,对应用程序所做的必要更改几乎肯定会比修改它以支持Vitess更多。

+0

非常感谢你 – montatich