写点什么

架构师 3 期 3 班 -week4- 总结

用户头像
zbest
关注
发布于: 2020 年 12 月 18 日

互联网应用面对的问题

* 高并发,大流量

* 高可用

* 海量数据存储

* 网络环境复杂

* 安全性

* 快速的需求迭代

应对高并发的2种解决思路

* 垂直伸缩:服务器的性能提升(硬件);缺点:资金成本、物理极限

* 水平伸缩:服务器的数量提升;缺点:软件开发成本



互联网架构演化

  1. 单体应用(应用服务器、数据库、文件服务器等放在同一台机器上)

  2. 应用与数据分离(应用服务器、数据库、文件服务器分别单独部署)

  3. 增加缓存改善系统性能(硬盘存储遇到瓶颈,通过缓存来减少硬盘的读写)

  4. 使用集群改善并发性能(通过增加服务器减轻单台服务器的压力)

  5. 数据库的读写分离(通过主从的读写分离,提高数据库的性能)

  6. CDN加速(通过运营商提供的缓存静态资源,减少服务器请求压力)

  7. 分布式的存储系统(使用分片的思想,提高存储系统的并发

  8. NoSQL与搜索引擎(通过非关系型数据库提高复杂查询的性能)

  9. 业务拆分(根据业务拆分系统,提高代码的可维护性)

  10. 微服务(将可服用的服务器拆分成微服务供业务系统调用)

  11. 大数据与智能化(通过用户行为,给出用户关注的内容)



架构模式

分层

将系统横向的分成几个部分,每个部分负责单一的职责,然后通过上层依赖下层完成系统的业务流程。

如:视图层(静态资源)、应用层(给客户端提供api)、核心业务层(提供核心业务,供应用层组合使用)、基础服务层(提供公用服务)、存储层(数据的持久化)等





分割

将系统纵向拆分,按业务/职责拆分系统,提供系统的可维护性和并发能力





集群

将同样功能的服务部署多份,提高并发能力,解决单点问题



缓存

是将数据存储到“离用户更近的地方”,以提高响应效率,减少耗时的重复操作。

注: 离用户更近的地方并非单指物理上的距离,而是用内存代替磁盘提高访问数度、用cdn 缓存减少网络路径等

  • CDN

  • 反向代理

  • 本地缓存

  • 远程缓存



从效果上:CDN > 反向代理 > 本地缓存 > 远程缓存

异步

解耦、提高吞吐量、提高系统可用性

冗余

为系统提高一部分冗余,提高系统的可用性

自动化

提高可维护性,避免人为操作造成的错误

安全

提供加密、认证等手段提高安全性

互联网架构的核心元素

高性能

主要手段:缓存、异步

高可用

主要手段:集群、冗余、限流、熔断(降级)

可伸缩

动态扩容/缩容

可扩展

主要手段:事件驱动、分布式部署

安全性

隔离、认证、加解密



发布于: 2020 年 12 月 18 日阅读数: 19
用户头像

zbest

关注

一个胖子 2020.11.04 加入

一个不正经的java程序员, 整天写着openresty和go的代码, 努力从键摄向非职业摄影师迈进, 快要溺死在内耗里的中年人, 胖子。

评论

发布
暂无评论
架构师 3 期 3 班 -week4- 总结