微服务中台架构开发
上QQ阅读APP看书,第一时间看更新

2.1.4 缓存服务器

学校发展得很快,又开了超市,校领导决定将食堂的饭卡系统进行业务扩展,升级为学校的一卡通系统,不仅可以吃饭,还可以在校园内为所有的消费刷卡。这对刚刚架构升级后的系统又提出了更高的要求。该系统负责人向我征求方案,我查看了他们5台服务器的系统负载情况,发现问题出在数据库服务器的CPU和内存使用率一直在高位;然后又找了他们某一天的访问日志进行了认真的分析,发现学生一次刷卡消费需要请求服务器5次,分别是查询学生信息、查询卡余额信息、查询商户信息(包含食堂和档口)、查询商品信息(包含菜品)和扣费。只有卡余额信息和扣费两个数据是一直变化的,学生信息、商户信息和商品信息变化得不频繁。基于以上分析,我建议他们在应用服务器和数据库服务器之间加一台缓存服务器(服务器6),将这些变化不频繁的信息存放到缓存服务器的内存里,这样处理请求的方式变为应用服务器收到请求先去缓存服务器的内存里找,如果找到了就直接返回数据,如果没有找到再去数据库服务器查询,并将结果存到缓存服务器,下次相同的请求通过缓存服务器即可得到数据。用缓存服务器的原因是读取内存的速度比读取数据库硬盘快得多。加入缓存服务器后架构如图2-4所示。

图2-4

正如每天营业前把客人常点的菜先备好,客人点了备菜只需热一下就可以直接上桌,如果备菜都用完了再通知后厨制作。