Oracle NoSQL DB Streams 如何处理故障?
How does Oracle NoSQL DB Streams handles failures?
我今天早上设置了几个 NoSQL 流。中午左右,部署 Oracle NoSQL 数据库的环境中出现网络连接问题。我在我的应用程序中发现了一些异常情况。
Oracle NoSQL DB Streams API 如何处理网络连接不稳定、主传输和服务器重新平衡等故障?
请指教
感谢试用 Oracle NoSQL 数据库流 API。
Oracle NoSQL Streams 根据故障的性质以不同的方式处理故障。在网络连接不稳定的情况下,StreamsAPI会在StreamsAPI缓存的主机和端口重新连接到各个分片的master节点,因此,当网络连接恢复时,StreamsAPI 将成功重新连接并从上次流式传输操作恢复流式传输。如果 3 次尝试重新连接失败,Streams API 将从 Oracle NoSQL 数据库刷新拓扑,并重新连接到最新存储拓扑中找到的主节点。当 master 转移并且旧 master 不再可访问时,就会发生这种情况。
处理存储重新平衡类似于处理主传输,Streams API 将从存储中拉取新拓扑,并找到每个分片的新主以重新连接。重新平衡完成且新拓扑准备就绪后,Streams API 将能够重新连接并恢复流式传输。
以上描述适用于最新版本的Oracle NoSQL Database 21.1。在以前的版本中,Stream API 中的重新连接次数有一个限制,如果用完最大尝试次数,Streams API 将终止流并发出信号 NoSQLSubscriber.onError()
。在 21.1 中,默认情况下取消了此类限制,Streams API 将继续重新连接,直到连接恢复。用户可以通过设置 NoSQLSubscriptionConfig.Builder.setMaxReconnect(long maxReconnect)
来覆盖默认行为
我今天早上设置了几个 NoSQL 流。中午左右,部署 Oracle NoSQL 数据库的环境中出现网络连接问题。我在我的应用程序中发现了一些异常情况。
Oracle NoSQL DB Streams API 如何处理网络连接不稳定、主传输和服务器重新平衡等故障?
请指教
感谢试用 Oracle NoSQL 数据库流 API。
Oracle NoSQL Streams 根据故障的性质以不同的方式处理故障。在网络连接不稳定的情况下,StreamsAPI会在StreamsAPI缓存的主机和端口重新连接到各个分片的master节点,因此,当网络连接恢复时,StreamsAPI 将成功重新连接并从上次流式传输操作恢复流式传输。如果 3 次尝试重新连接失败,Streams API 将从 Oracle NoSQL 数据库刷新拓扑,并重新连接到最新存储拓扑中找到的主节点。当 master 转移并且旧 master 不再可访问时,就会发生这种情况。
处理存储重新平衡类似于处理主传输,Streams API 将从存储中拉取新拓扑,并找到每个分片的新主以重新连接。重新平衡完成且新拓扑准备就绪后,Streams API 将能够重新连接并恢复流式传输。
以上描述适用于最新版本的Oracle NoSQL Database 21.1。在以前的版本中,Stream API 中的重新连接次数有一个限制,如果用完最大尝试次数,Streams API 将终止流并发出信号 NoSQLSubscriber.onError()
。在 21.1 中,默认情况下取消了此类限制,Streams API 将继续重新连接,直到连接恢复。用户可以通过设置 NoSQLSubscriptionConfig.Builder.setMaxReconnect(long maxReconnect)