在高并发的场景下,缓存、队列,异步是必备的技术手段,在哪里使用缓存,这个没有一个标准的方案,但是有个约定的前提,谁提供谁负责(谁提供的服务,谁来保障服务的高可用)。这里给下我的建议:
1、一切皆缓存,所有的地方都可以用缓存,如果担心因为缓存更新策略问题带来的数据不一致,那么可以使用版本号来控制数据的新鲜度。
2、哪里使用队列:用户提交一个请求后,不需要立刻返回接口给客户端,就可以使用队列来增加吞吐量,比如用户注册后送积分,没有必要立刻增加积分,而是通过队列来实现异步
3、服务熔断:是按事先约定的接口返回值来应答(非核心接口),所以不存在影响其他服务。