0

今天早上我设置了几个 NoSQL 流。中午前后,部署 Oracle NoSQL 数据库的环境中出现了网络连接问题。我在我的应用程序中看到了一些异常情况。

Oracle NoSQL DB Streams API 如何处理网络连接不稳定、主传输和服务器重新平衡等故障?

请指教。

4

1 回答 1

0

感谢您试用 Oracle NoSQL 数据库流 API。

Oracle NoSQL Streams 根据故障的性质以不同的方式处理故障。在网络连接不稳定的情况下,Streams API 会重新连接到 Streams API 中缓存的主机和端口的每个 shard 的主节点,因此,当网络连接恢复时,Streams API 会重新连接成功并从上一个恢复流式传输流式操作。如果 3 次后尝试重新连接失败,Streams API 将从 Oracle NoSQL 数据库刷新拓扑,并重新连接在最新存储拓扑中找到的主节点。当主控转移并且旧主控不再可访问时,就会发生这种情况。

处理 store rebalancing 与处理 master transfer 类似,Streams API 将从 store 中提取新的拓扑,并找到每个 shard 的新 master 以重新连接。在重新平衡完成并准备好新拓扑后,Streams API 将能够重新连接并恢复流式传输。

以上描述适用于最新版本的 Oracle NoSQL Database 21.1。在以前的版本中,Stream API 中有一个限制重新连接次数的限制,NoSQLSubscriber.onError()如果超过最大尝试次数,Streams API 将终止流并发出信号。在 21.1 中,默认情况下删除了此类限制,Streams API 将继续重新连接,直到连接恢复。用户可以通过设置覆盖默认行为NoSQLSubscriptionConfig.Builder.setMaxReconnect(long maxReconnect)

于 2021-03-31T18:06:09.303 回答