1.5应用级分区

对实例化多个没有限制ndb_cluster_connection.表示与单个应用程序中不同管理服务器的连接的对象,也无法使用这些来创建多个实例NDB.班级。这样的ndb_cluster_connection.对象(和NDB.甚至不需要基于它们的实例即可连接到同一群集。

例如,完全可以执行应用程序级分区数据以这样的方式:数据会满足一组标准的数据是交给了使用一个群集NDB.使用的对象ndb_cluster_connection.代表与该群集的连接的对象,而无法满足这些条件的数据(或可能是不同的条件),可以通过利用a的NDB的不同实例发送到不同的群集ndb_cluster_connection.指示到第二个群集。

可以扩展此方案以开发一个访问任意数量的群集的单个应用程序。但是,在这样做时,必须记住以下条件和要求:

  • 群集管理服务器(ndb_mgmd.)可以连接到一个且只有一个群集而不重新启动和重新配置,因为它必须读取数据,告诉数据节点从配置文件构成群集(config.ini.)。

  • 一个ndb_cluster_connection.目的属于在实例化此对象时使用主机名或IP地址的单个管理服务器(传递为connection_string.对其构造函数的论点);创建对象后,不能用于启动与其他管理服务器的连接。

    (看ndb_cluster_connection类构造函数。)

  • 一个NDB.使用此连接的对象(ndb_cluster_connection.)无法重新使用以连接到不同的群集管理服务器(因此,并因此连接到构成群集的数据节点的不同集合)。任何特定的NDB.涉及特定的ndb_cluster_connection.创建时,它ndb_cluster_connection.当实例化时,又绑定到单个和唯一的管理服务器。

    (看NDB类建设者。)

  • 前面描述的绑定持续存在于寿命NDB.ndb_cluster_connection.有问题的对象。

因此,它在设计和实现任何访问​​单个会话中访问多个群集的应用程序是必不可少的,该应用程序ndb_cluster_connection.NDB.将实例化的对象用于连接到每个群集管理服务器,并且不会困惑地出现用于访问哪些NDB群集的混淆。

请记住,没有直接的情况也很重要分享不同群集之间的数据或数据节点是可能的。数据节点可以属于一个且仅一个群集,并且必须在应用程序级别完成群集之间的任何数据移动。

例如,示出如何在单个应用程序中进行与两个不同群集的连接如何,请参阅第2.5.2节“NDB API示例使用同步事务和多个集群”, 和第3.6.2节“MGM API事件处理多群集”