在我的服务中,我正在尝试使用莴苣客户端的ReadFrom
方法来确保强一致性。我正在写,然后进行阅读。在客户端配置中,我将ReadFrom
设置为SLAVE_PREFFERED
。生菜文档在SLAVE_PREFFERED
中说:“从副本节点读取,但是如果不可用,则从主节点读取。”。
我想知道,如果没有可用的只读副本,Lettuce客户端是否仅从主服务器读取?
如果只读副本可用但所有副本都没有密钥怎么办?那它是从主人那里读过来的吗?
答案 0 :(得分:1)
我想知道,如果没有可用的只读副本,Lettuce客户端是否仅从主服务器读取数据?
是的,就是这样。
ReadFrom
指示Lettuce使用特定的节点选择来发出特定的读取命令。
如果只读副本可用但所有副本都没有密钥怎么办?
然后,您将收到一个未找到的答复。例如。 GET
产生一个null
值。
然后从主机读取吗?
不。命令仅发出一次。 ReadFrom
提供命令路由。
如果要保持强一致性,则只能从主节点读取。从非主节点读取会导致最终的一致性。