第 4 周作业
作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
1、CDN服务,用于缓存静态图片,部署在运营商机房,用户访问时直接从CDN服务上访问,不用再路由到应用所在机房,减少用户访问时间。
2、DNS服务,通过dns域名解析,可以将域名解析成负载均衡的IP地址。
3、负载均衡。可以采用硬件F5做负载均衡,优点是支持的并发量大,缺点是比较贵。也可以才用Nginx代理,优点是免费开源,缺点是并发量不是很大。
4、大型互联网公司均采用分布式框架,常见的有dubbo,用于服务发现、服务治理和保证服务一致性的有zookeeper。
5、为了减少mysql数据库的访问压力,一般会使用缓存,常见的缓存有Redis、Memcache。
6、如果并发量非常大,可以使用消息队列来实现削峰填谷,也可以使用消息队列来实现两个耦合模块的解耦。常见的消息队列有rabbitMQ,rocketmq,kafka等。
7、当部署的节点非常多时,如果需要改变某些系统配置,就要手动改变各个节点的配置,显然大大增加了运维的难度,所以需要增加配置中心,用于管理项目使用的配置,修改配置后,可以通过配置中心,将配置推送到各个节点。
8、通过kafka、es来记录项目产生的日志,可通过查看日志的调用链,来定位线上问题。
9、如果数据量很大,可以尝试使用hbase等大数据技术,将数据存储,便于后续的运营分析。
作业二:
架构是为了解决项目存在的问题,不是越复杂的架构越好,只有解决问题的设计才是好的架构。学习设计模式、架构理论,就是为了以不变的架构思想,来应对千变万化的需求。吾辈当努力学习,寻找架构设计的九阳真经。
评论