性能优化案例(一):通过修改路由算法提升系统性能
概述
一般性能优化方法有两种:一是,从代码层面优化,提升某个方法的性能,从而提升单机性能;二是,从系统结构层面优化,通过减少无用功,来减少资源消耗。这里,我们写一个用第二种方法优化性能的例子。
系统结构
首先,说一下最初的系统结构。我们有一个机票搜索系统,架构如下所示:
- provider 提供搜索服务;
- consumer 负责向 provider 发起搜索请求;
- router 提供路由功能,按航线将请求哈希到 provider 上处理,哈希是为了提升 provider 上缓存的命中率。当然,为了减小发布抖动,采用的是一致性哈希算法。
在实际中,一个大航线可能会有几百个航班,最小的航线就只有几个航班,同时一次搜索请求,会带上几十个代理商,每个代理商都有自己的报价。假如是某次请求的航线有 200 个航班,有 30 个代理商,那就有 6000 个航班,