首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL多站点聚类中进行数据节点选择??是否基于节点组中数据节点的地理邻近性?

问如何在MySQL多站点聚类中进行数据节点选择??是否基于节点组中数据节点的地理邻近性?
EN

Stack Overflow用户
提问于 2017-10-23 11:27:06
回答 1查看 193关注 0票数 1

我正在探索部署MySQL多站点集群的选项。MySQL集群部署有三个站点,有两个节点组,每个节点组包含三个带有NoOfReplicas=3的数据节点,一个节点组中的3个数据节点被放置在三个不同的位置进行地理传播。

所有三个站点都通过mysqld服务器访问MySQL集群,并在一个表中执行SELECT和INSERT/UPDATE操作。

问题1:

当从站点发出查询时,将访问哪个数据节点。查询将访问位于同一站点的本地数据节点,该站点是查询的发源地。

问题2:

使用EXPLAIN语句,我可以理解在查询操作中使用的是哪个分区,但不了解查询访问的确切数据节点。是否有任何方法可以了解为查询访问的节点组中的哪个数据节点。

问题3:

是否有方法为节点组中的数据节点选择设置站点关联/标记。

EN

回答 1

Stack Overflow用户

发布于 2017-10-24 12:48:08

问题1:答案取决于表是否使用读备份功能。如果不是,查询几乎总是被发送到独立于其所在位置的主副本。

对于MySQL服务器中的读备份,我们将将查询发送到同一节点组和同一主机上的数据节点。这通常是基于用于MySQL服务器和数据节点的相同主机名而自动完成的。还可以将变量ndb_data_node_neighbour设置为您最接近的数据节点(这是MySQL服务器中的配置变量)。

当数据节点计算出要将查询发送到哪里时,如果数据驻留在本地节点,它将转到本地节点。否则,它将转到主副本节点。

您还可以使用完全复制的表,在这种情况下,数据驻留在每个节点中,在这种情况下,数据始终会转到同一主机上的a数据节点,并在那里找到数据。

问题2:分区到节点和LDM线程的映射是静态的。此信息可在ndbinfo表table_fragments中找到:https://dev.mysql.com/doc/mysql-cluster-excerpt/5.7/en/mysql-cluster-ndbinfo-table-fragments.html。

问题3:有趣的问题,我最近一直在研究这样一个特性。不管它是否会被实际发布,以及什么时候会像往常一样不是不能保证的事情,但是这个想法与您的想法是一致的,我们为每个数据节点和MySQL服务器定义了一个MySQL,并使用它来路由读取请求。同样,它将仅适用于使用读取备份功能或完全复制表的表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46888228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档