【问题标题】:How to set the downgrading policy in Cassandra using nodejs如何使用 nodejs 在 Cassandra 中设置降级策略
【发布时间】:2018-06-09 15:21:17
【问题描述】:

我不确定使用 Cassandra 在 nodejs 中设置“DowngradingRetryPolicy”策略。

policies : { loadBalancing : new cassandra.policies.loadBalancing.RoundRobinPolicy,
                                                   retry: new cassandra.policies.retry.IdempotenceAwareRetryPolicy(new cassandra.policies.retry.RetryPolicy())
                                                 } });

这就是我设置 IdempotenceAwareRetryPolicy 策略的方式,它按预期工作,但是如何使用 nodejs 在 Cassandra 中设置“DowngradingRetryPolicy”策略

添加 ruby​​ 实现作为参考,

https://datastax.github.io/ruby-driver/features/retry_policies/downgrading_consistency/

【问题讨论】:

    标签: node.js cassandra cassandra-3.0


    【解决方案1】:

    nodejs中没有降级一致性重试策略。恕我直言,这是一件好事,在 C* 一致性保证的上下文中没有多大意义。如果真的需要,人们总是可以编写自己的重试策略来执行此操作,但默认情况下会鼓励危险的设置,这可能会在意外/随机时间违反一致性预期。

    但是,如果您正在考虑使用降级重试策略,只需使用 CL.ONE 和普通策略即可。您必须假设所有查询都将在此执行,否则您的应用程序将不安全。所以还不如得到降低一致性级别的性能提升。

    除非有充分的理由,否则最好坚持使用默认的 TokenAwarePolicy 包装 DCAwareRoundRobinPolicy。只是 DCAwareRoundRobinPolicy 可能最适合稳定性。

    【讨论】:

    • 我完全理解降级政策中的问题,但有没有办法解决这个问题:stackoverflow.com/questions/48056093/…
    • 假设我有两个节点,其中一个节点出现故障。我有RF = 2,现在我需要将一致性级别更改为1,那么nodejs中有没有可以尝试的重试策略示例?
    • 因为我需要单节点支持以防万一发生故障。
    • 我已经编写了自己的重试策略,请查看:stackoverflow.com/questions/48202044/…
    • @Harry 太棒了!正是我一直在寻找的......谢谢!
    猜你喜欢
    • 2018-06-20
    • 2018-08-23
    • 2017-12-05
    • 2023-03-07
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多