大型互联网应用的技术方案
缓存
解决的问题:减少数据库、文件访问;减少重复的计算,提高相应速度
技术方案:
分布式缓存:redis集群(更优)、memcache
内存缓存
分布式数据库
解决的问题:
避免单点故障,冗余备份,提高容灾能力;
资源使用方便弹性伸缩;
技术方案:
mysql集群
CDN和反向代理
解决问题:
CDN解决资源下载慢,主资源服务器压力过大问题;
反向代理解决CDN不命中时,回源查找对应的资源
技术方案:
运营商
自建idc
云厂CDN
nosql和搜索引擎
解决的问题:
数据量越大,关系型数据库不能满足日新月异的需求,更关注响应速度
技术方案:
MongoDB、ELK
应用服务集群化
解决问题:
避免单点故障
并发瓶颈
如何水平扩展问题
服务之间依赖严重
重复造轮子
技术方案:
业务拆分,应用服务器无状态
微服务化:远程调用方式使用服务;开发有序,减少组件相互依赖,方便代码维护,版本可控。
中台化:将公共服务集成,可复用,避免开发重复业务,提高开发效率
分布式文件服务器
解决问题:
每天文件越来越大,单机已容不下
提高存取速度
技术方案:
dfs、oss
消息队列
解决问题:
业务高峰并发异常高,削峰填谷
提高响应速度、业务稳定性
技术方案:
kafka、RocketMQ等
负载均衡
解决问题:
动态分配流量
访问控制等
技术方案:
slb、nginx
版权声明: 本文为 InfoQ 作者【GalaxyCreater】的原创文章。
原文链接:【http://xie.infoq.cn/article/a3806db6bfb265b71a34e13e7】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论