架构师训练营 - 第四周命题作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
CDN:加速静态文件的访问速度
Nginx:反向代理和负载均衡,提高可用性
集群:每个服务至少部署两个节点,保证可用性
微服务:根据业务或技术选型将大体积的服务拆分多个小体积的服务,可以提高系统整体稳定性,减少服务启动时间,服务发布更灵活,技术选择更灵活。
缓存:提高查询接口响应效率,减少数据库访问。redis作为缓存工具还能实现分布式锁功能,使多个服务协同一致。
数据库主从和读写分离:采用一主多从的结构,写主库读从库,提高数据库访问性能
数据备份:定时备份数据,有全量备份和增量备份两种,用于容灾。
Nosql:用于对于数据一致性要求不高但对响应性能有一定要求的功能模块
ES搜索引擎:用于关键词搜索和数据统计查询,ELK用于异常信息收集和接口性能分析
Kafka消息中间件:用于埋点信息采集、业务流量的削峰填谷
Flume:用于数据流分发处理,典型的数据源是kafka
大数据:存储和统计分析待处理的源数据、kafka消息
Zookeeper:可作为服务注册中心、分布式锁、配置中心
Apollo配置中心:统一管理系统配置、动态刷新配置
异步处理:有两种情况需要异步处理,一是单个请求响应较慢接口不能长时间等待,这时可以先提交到服务端然后轮询获取处理结果,二是请求数与处理速度不匹配且不需要获取结果时,可以利用中间件记录请求,服务端匀速处理这些请求。
自动化:自动监控服务运行状况,实现弹性伸缩。减少人工干预
评论