我正在使用Lettuce客户端设置主/从Redis拓扑。我的readPreference是slave_preferred
,并且该拓扑具有三个从属和一个主控。
我遇到的问题是,一旦建立了StatefulRedisMasterSlaveConnection
,所有查询都将转到同一个从属服务器,而不是平衡所有可用从属服务器之间的负载。
我也尝试根据文档添加一个commons-pool2
连接池,但是行为似乎是相同的。
我还尝试过使用静态拓扑发现和动态拓扑发现。
是否有一种方法可以平衡从站之间的负载,并且不让所有查询都发送到同一从站?
谢谢
答案 0 :(得分:0)
简短的答案是no。
更长的答案是:
Lettuce为每个插槽哈希选择一个副本,并将所选副本用于读取操作,直到下一次拓扑刷新为止。这是为了减少CPU开销而设计的。
您可能要遵循ticket #834,因为这是为了增加跨只读副本的负载平衡/循环功能。