在筛选NDB API事件文档和类注释后,我在NdbEventOperation.hpp中看到了这条评论:
/*
* Known Issues:
* - If a node failure has occured not all events will be recieved
* anymore. Drop NdbEventOperation and Create again after nodes are up
* again. Will be fixed in later versions
*/
这是否意味着如果数据节点失败,将不会收到NDB事件?
我在运行NDB API事件监听程序时测试了数据节点,我仍在接收所有事件(我在原型设计过程中只有2个事件)。
更新
以下是一些澄清:
比如说,我们有一个由四个主机(n1,n2,n3,n4)组成的集群,有两个数据节点(n1,n2)和一个管理节点(n3),以及一个两个SQL节点(n3) ,n4)。因此,如果数据节点出现故障(比如n1),我认为由n1处理的那些事件现在将由n2处理,因为集群事件同步发生。所以,我不知道我们将如何失去这些事件。
我想知道NdbEventOperation.hpp中的注释是指数据节点,管理节点还是SQL节点。
我也想知道这个问题是否已经修复(因为它在评论中说“它将在以后的版本中修复”)。
NdbEventOperation.hpp中的这条评论看起来非常糟糕,因为MySQL Cluster的整个概念都围绕着可用性和事件。我很难相信如果数据节点在群集中出现故障,将无法收到某些事件。