架构师训练营第四周作业
一、一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
前端架构
- App 及 Web 开发技术 
采用混合开发模式及响应式布局方式,提高 App 和 Web 端的开发速度,快速响应需求。原生开发可以使用 Flutter 提高 iOS 和 Android 的开发速度。
- 浏览器及 HTTP 优化技术 
使用浏览器缓存和压缩技术提高前端页面的响应速度
- CDN 
将静态资源部署到离客户更近的 CDN 服务器上,提高网站的响应速度。
- 动静分离 
使用 CDN 技术,将静态资源和动态资源分别部署
- 图片服务 
将图片压缩并进行单独服务管理,提高服务器使用效率
- 反向代理 
使用 Ngnix 反向代理,将应用请求分散到不同的服务器上
- DNS 
网关及应用层架构
- 网关架构 
使用 API 网关将各系统对外暴露的服务聚合起来,所有要调用这些服务的系统都需要通过 API 网关进行访问,基于这种方式网关可以对 API 进行统一管控,例如:认证、鉴权、流量控制、协议转换、监控等等。
- 负载均衡 
使用 Ngnix 反向代理,将应用请求分散到不同的服务器上
- 动态页面静态化 
将动态页面进行静态化,再使用动静分离
- 业务拆分 
根据 DDD 设计思想,将高内聚低耦合的业务进行拆分部署
服务层架构
- 微服务框架 
使用 SpringCloud 套装,将服务进行拆分后进行管理
- 分布式消息队列 
使用 kafka 消息队列,对服务间的访问进行解耦
- 分布式缓存 
使用 Redis 缓存替代数据库的直接访问,提高数据的吞吐
- 分布式一致性(锁)服务 
服务拆分后需要使用分布式锁 Zookeeper 确保事务的成功
存储层架构
- 分布式文件 
使用 HBase 进行分布式文件的管理
- 分布式关系数据库 
使用 TiDB 作为分布式关系型数据库
- NoSQL 数据库 
使用 lucence 作为数据的存储,提高数据检索速度
后台架构
- 大数据平台 
使用 Hadoop 作为大数据通用处理平台
- 搜索引擎 
- 推荐引擎 
- 数据仓库 
运维与安全
- 数据采集与展示 
使用 Flume+Kafka+logstash+ElasticSearch+Kibana 实现日志收集及展示
- 数据监控与报警 
使用 Prometheus 进行监控
- 攻击与防护 
通过密码和手机校验码进行身份认证;登录、交易等操作需要对网络通讯进行加密,网站服务器上存储的敏感数据如用户信息等也进行加密处理;为了防止机器人程序滥用网络资源供给网站,网站使用验证码进行识别;对于常见的用于攻击网站的 XSS 攻击,SQL 注入,进行编码转换等相应处理;对于垃圾信息、敏感信息进行过滤;对转账交易等重要操作根据交易模式和交易信息进行风险控制
- 数据加密与解密 
网络使用 https 进行通讯,防止信息窃听
二、学习总结
所有的进步都是问题驱动。
本周从三个方面对架构进行了学习。
第一天学习从互联网软件的挑战“高并发、大流量、高可用、需求变化”开始,提出高并发了对应的解决方案。
->垂直伸缩:提高单机硬件能力。优势:见效快,软件修改成本低,设计简单;缺点:硬件成本高,有上限
->水平伸缩:通过多台机器分散单机压力。类似一个公司的发展,通过一个岗位招聘多个人来提高产能,但是人多了管理势必复杂。优势:解决并发无上限;缺点:软件成本高,设计复杂。
第二天学习一般互联网软件的发展历程:
单体应用->应用数据分离->使用缓存->集群化部署->数据库读写分离->反向代理和 CDN->分布式系统和分布式文件->使用 NoSQL 和搜索引擎->业务拆分->微服务和中台化->大数据和智能化
第三天学习互联网的架构模式
垂直分层、水平分割、分布式提效、集群做备份、缓存提速、异步解耦、冗余做备份、自动化运维、安全
本人近 10 年从事的是 toG 的软件研发,该行业主要是政府内使用,较少有高并发的情况,主要是解决的问题是业务逻辑复杂、高可用、易用和对业务的快速响应方面。
第一阶段:局域网的局内办公系统。 C/S 架构,稳定性高,性能好
第二阶段:政务网的多单位多办公地点交互。B/S 架构,解决运维压力
第三阶段:移动办公。采用 app、web 混合模式,提高业务响应速度
第四阶段:大数据辅助决策。使用分布式文件存储和 ETL 工具建设数据仓库;使用机器学习等技术,辅助业务办理审批
第五阶段:互联网+政务。目前政府服务理念的转变,系统除满足局内用户外,还服务与公众,对高并发和高稳定性提出了新的要求。采用 SpringCloud 微服务架构对业务进行水平扩展,提高系统性能。











 
    
评论