架构师课作业 - 第四周
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?
分层架构, 切分层级每个层级更细分的优化
前端架构
APP及Web开发技术
浏览器及HTTP优化技术
我的理解, 是优化通讯协议, 包括选择http1.0, 2.0, 3.0, 字节传递或二进制传递, 而浏览器的利用可能就是利用浏览器的缓存特点, 节省网络请求次数
CDN
将缓存用到极致的方式, 让用户就近获取缓存
动静分离
变化与不变分离, 我想到的是文件图片js等等资源的分离, 这些静态资源利用各种缓存, 亦或是独立部署静态资源服务器, 来减少服务器压力
图片服务
反向代理
nginx这种反向代理服务器, 本身会代理请求并选择Web服务器亦或是静态资源地址, 也可以代理请求帮助实现负载均衡
DNS
域名解析IP的服务, 帮助解析其实也相当于一种代理, 可以做IP层(网络层)的负载均衡
网关及应用层架构
网关架构
网关本身是微服务的代理, 帮助做服务选择及服务集群下的负载均衡
负载均衡
动态页面静态化 (不太懂具体实现以及解决什么问题)
服务层架构
微服务框架
业务解耦, 实现松耦合高内聚的手段, 还能更加清晰的划分实际团队职能, 也能更好的针对具体业务模块的压力来有针对性的扩缩容
分布式消息队列
针对集群及分布式系统, 需要分布式的消息队列, 消息队列本身可以异步化响应, 像是老师的反应式编程框架, 加快响应时间, 性能更高能承载更高并发量.
分布式缓存
针对集群及分布式系统, 需要分布式的缓存, 缓存本身可以减轻数据库压力 , 根本上是减少IO磁盘的压力, 分布式缓存如Redis都是去访问内存的数据, 内存访问比磁盘访问速度快很多, 所以也加快了请求的响应速度
分布式一致性(锁)服务
真实场景下针对公共资源的使用往往存在并发问题, 一般用本地内存的排它锁等锁机制确保访问的正确性, 分布式锁应对集群及分布式系统
存储层架构
分布式文件 (这块也不熟悉, 没使用过)
分布式关系数据库
我对此块的理解是, 根据业务(如不同微服务)的垂直分库, 根据数据量进行的水平分表
NoSQL数据库
后台架构
大数据平台
如kafka+flink 这种消息队列加流式计算, 做实时统计
搜索引擎
我的认知是, 基于倒排索引做的全文检索
推荐引擎
不太懂, 觉得是根据用户行为的画像和资源标签匹配
数据仓库 (也是不懂的一块)
运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
评论