分布式缓存服务 DCS-Redisson客户端连接Redis(Java):DCS实例配置建议

时间:2024-08-16 16:32:33

D CS 实例配置建议

  • 读取模式(readMode)

    建议采用MASTER,即Master节点承担所有的读写流量,一方面避免数据因主从同步时延带来的一致性问题;另一方面,如果从节点故障,配置值=SLAVE,所有读请求会触发报错;配置值=MASTER_SLAVE,部分读请求会触发异常。读报错会持续failedSlaveCheckInterval(默认180s)时间,直至从可用节点列表中摘除。

    如需读写流量分流处理,DCS服务提供了针对读写流量分流的读写分离实例类型,通过在中间架设代理节点实现读写流量分发,遇到从节点故障时,自动切流至主节点,对业务应用无感知,且故障感知时间窗口远小于redisson内部的时间窗口。

  • 订阅模式(subscriptionMode)

    建议采用MASTER,原理同读取模式(readMode)

  • 连接池配置

    以下计算方式只适用于一般业务场景,建议根据业务情况做适当调整适配。

    连接池的大小没有绝对的标准,建议根据业务流量进行合理配置,一般连接池大小的参数计算公式如下:

    • 最小连接数 =(单机访问Redis QPS)/(1000ms / 单命令平均耗时)
    • 最大连接数 =(单机访问Redis QPS)/(1000ms / 单命令平均耗时)* 150%

    举例:某个业务应用的QPS为10000左右,每个请求需访问Redis10次,即每秒对Redis的访问次数为100000次,同时该业务应用有10台机器,计算如下:

    单机访问Redis QPS = 100000 / 10 = 10000

    单命令平均耗时 = 20ms(Redis处理单命令耗时为5~10ms,遇到网络抖动按照15~20ms来估算)

    最小连接数 =(10000)/(1000ms / 20ms)= 200

    最大连接数 =(10000)/(1000ms / 20ms)* 150% = 300

support.huaweicloud.com/usermanual-dcs/dcs-ug-211105004.html