2

这是设置默认(读写)一致性级别的正确方法吗 val connector: KeySpaceDef = ContactPoints(hosts, port).withClusterBuilder { builder => builder.withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.QUORUM)) }.keySpace("test")

4

1 回答 1

-1

不,一致性级别设置为每个查询的协议级别,设置默认值可能非常危险。如果您不希望设置只是让默认值发生,您不必在任何地方都明确表示。

否则,在重要的地方使用一致性级别:

class Table extends .. {

    def store(rec: Record): Future[ResultSet] = {
      insert.value(_.id, rec.id).consistencyLevel_=(ConsistencyLevel.QUORUM)
    }

}

一致性级别与复制因素、性能、可用​​性和许多其他因素有关,因此在现实生活中,您最终可能会花费大量时间来寻找完美的答案。

全局默认在技术上并不是一个真正可行的想法,因此没有真正的动机在驱动程序中拥有这样的机制。

于 2017-01-19T16:18:09.590 回答