使用 nodejs 在 Cassandra 中重试策略
Retry policies in Cassandra using nodejs
我终于在 nodejs 中为 Cassandra 编写了 重试策略 ,我有一个用例,只要有一个节点副本可用,我就需要允许读写通过将我的一致性修改到最低水平。
我附上了更新后的重试代码(retry.js 中的 DowngradeRetryPolicy),能否请您查看 link 并提出您的意见,
https://gist.github.com/harigist/f74b29976702a84f8f37e1bf7b509e0e
1) 我希望使用此重试策略的问题列表?
2)这段代码有什么问题吗?我需要做出改变来处理极端情况吗?
使用降级一致性重试策略会导致您的应用程序一致性保证处于最低级别。理论上等同于第一次使用较低的一致性级别。
我个人认为这种类型的策略没有多大用处,除非您正在处理应用程序的 "normal mode" 和 "degraded mode"。
关于代码,我觉得不错。
问题...根据 docs 策略接口包含四种方法:
onReadTimeout
、onUnavailable
、onWriteTimeout
和 onRequestError
在你的政策中,我只看到 3。如果省略任何一个,会发生什么?是否使用默认逻辑?
此外,我发现您没有在代码中使用的另一件事是 _childPolicy
https://github.com/datastax/nodejs-driver/blob/master/lib/policies/retry.js#L160
我终于在 nodejs 中为 Cassandra 编写了 重试策略 ,我有一个用例,只要有一个节点副本可用,我就需要允许读写通过将我的一致性修改到最低水平。
我附上了更新后的重试代码(retry.js 中的 DowngradeRetryPolicy),能否请您查看 link 并提出您的意见,
https://gist.github.com/harigist/f74b29976702a84f8f37e1bf7b509e0e
1) 我希望使用此重试策略的问题列表?
2)这段代码有什么问题吗?我需要做出改变来处理极端情况吗?
使用降级一致性重试策略会导致您的应用程序一致性保证处于最低级别。理论上等同于第一次使用较低的一致性级别。
我个人认为这种类型的策略没有多大用处,除非您正在处理应用程序的 "normal mode" 和 "degraded mode"。
关于代码,我觉得不错。
问题...根据 docs 策略接口包含四种方法:
onReadTimeout
、onUnavailable
、onWriteTimeout
和 onRequestError
在你的政策中,我只看到 3。如果省略任何一个,会发生什么?是否使用默认逻辑?
此外,我发现您没有在代码中使用的另一件事是 _childPolicy
https://github.com/datastax/nodejs-driver/blob/master/lib/policies/retry.js#L160