写点什么

架构师训练营第四周作业

用户头像
我是谁
关注
发布于: 2020 年 10 月 17 日

一、一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

前端架构
  • 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 微服务架构对业务进行水平扩展,提高系统性能。

用户头像

我是谁

关注

还未添加个人签名 2017.12.04 加入

十五年电子政务老兵

评论

发布
暂无评论
架构师训练营第四周作业