作者回复: 1. 首先尽量选择高配的节点,各个节点之间尽量就近部署,使节点之间RTT延时尽量低,然后可使用本地SSD,并结合业务场景,构造一定的数据量,通过benchmark工具压测下,评估压测性能是否能满足业务诉求 2. 若无法满足,评估业务若存在多种路径的key写入,能否垂直拆分下,不同路径下的key,写入到不同etcd集群,比如kubernetes集群的主集群数据与event分离部署也是这样的思路 3. 评估业务上层能否支持多实例etcd集群,比如你要搞个任务系统,假设几十万的的节点,每个节点通过watch机制监听自己路径下的任务key,若任务系统的QPS较大,你可以通过多etcd集群来支持,一组节点分配一个etcd集群。然后你可以通过引入一个调度服务来给各个节点分配etcd集群,agent启动时,通过调度服务请求分配一个etcd集群,若未调度,则按一定的策略,比如etcd集群的负载情况分配一个负载最低给新增的agent,有了调度结果后,随后agent就知道监听哪个etcd集群了。随着节点数增多,你可以平行扩容etcd集群。 4. 确定是否真的依赖etcd的一些特性,可以在方案选型中,评估其他方案,比如redis等,写性能更好,还有底层存储引擎使用LSM实现的leveldb/rocksdb等,也是非常好的候选方案