问:“高并发qps过万,如何设计架构?”
首先,
代码层面
需要状态同步的节点,用 redission做分布式可重入锁,
频繁访问的相同的数据,放入 redis 缓存,
频繁访问的方法,做多线程处理,设置线程池,
总之就是该非阻塞的非阻塞,该异步的异步,
如有必要,加入服务熔断和服务降级,做分布式限流,
其余注意事务的控制,
架构层面
nginx的 connection 保证,
linux 的文件句柄数保证,
数据库 connection 保证,
内部服务之间的请求,尽量使用 mq,减轻数据丢失的可能,
服务开始尽量做 HA,不要单点,
有些请求量大的模块,尽量抽取出为微服务化的组件,便于水平扩展。