架构师训练营第 4 周作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
1、遇到的挑战主要是复杂度问题,主要包括业务上 高并发、高性能、高可用,以及一些非业务 可扩展 安全 成本等等问题
2、主要解决思路是
缓存
解决重复数据查询问题
拆分
数据备份
水平扩展
业务垂直拆分
学习总结
本章内容相对前几周,干货较少,大多是一些通用的设计思路,希望能够补充一下
包括不限于以下内容
1、系统遇到瓶颈,需要演化或扩展,怎么判断瓶颈在哪里?或者说怎么判断是需要加 缓存,还是需要加机器,还是需要扩db?有什么具体指标或者经验分享吗。
因为系统演进看过太多次了,但是实际工作遇不到快速发展的业务,还是很难有体感,遇到问题就还是不知所措。
2、系统架构不光是 交易类的设计。典型的比如社交类、搜索架构,能不能简单介绍。
比如腾讯、头条、微博、百度 的系统设计,因为交易类的最核心关注事务和一致性,而社交类更关注消息无丢失、顺序的送达等。不同关注点对系统架构的设计思考和演进都不一样。
因为我之前一直在做交易相关的,有一次项目需要做一个 类似qq的聊天+推送系统,发现需要用websocket,这个最大的问题是服务器需要维护长连接,就是有状态的,那么分布式水平扩展的时候,怎么办?类似这样的问题,交易架构是没法涉及的。
3、系统架构遇到的一些难点,是怎么解决的,比如:
数据库扩容,在不间断业务的前提下,怎么平滑扩容;具体实施步骤是什么?
秒杀或大促系统,那一分钟的流量怎么抗下来,只是限流吗?
异地多活,怎么做到,如果按uid切分,怎么保证我访问的是最近的数据中心?
缓存遇到的问题,比如热点问题?失效穿透问题?
版权声明: 本文为 InfoQ 作者【悠哉】的原创文章。
原文链接:【http://xie.infoq.cn/article/f5758bfb09a5d456c76ec9820】。未经作者许可,禁止转载。
评论