架构师训练营 week4
作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
前端架构
前端开发框架:统一的代码规范,发布流程,工程化的流程规范开发者
CDN:将静态资源分发到离用户最近的节点, 比如 GeoDNS:基于开源域名服务器软件 BIND(Berkeley Internet Name Domain)的增强版本,可将域名解析到离用户最近的服务器
动静分离:缓存静态资源,加速页面加载
比如:Lighttpd:开源的应用服务器,较主流的 Apache 服务器更轻量、更快速。实践中,有许多网站使用 Lighttpd 作为图片服务器。
网关架构
流量鉴权:过滤非法流量
负载均衡
协议转换
业务拆分
比如:LVS:基于 Linux 的开源负载均衡服务器
服务架构
微服务架构:多人协作开发大型系统,解耦,可扩展,
分布式:高可用,高性能,
消息队列:解决“写多”,流量控制,系统解耦。常用的 MQ,RabbitMQ,Kafka,RocketMQ
配置中心:可以用 zookeeper 实现
RPC 框架:比如 dubbo,是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案。
缓存:减少数据库压力,加快查询速度。 Memcached:无中心高性能的开源分布式缓存系统,稳定、可靠、历久弥新,是网站分布式缓存服务必备的。
读写分离:解决“读多写少”问题
任务调度中心:xxl-job
存储架构
数据库分库分表:高可用,提升 sql 速度,MySQL:开源的关系数据库管理系统。
NoSQL:高可用,速度快。redis,最常用的缓存技术, Hbase,海量数据库,数据统计分析
大数据存储:解决海量数据存储问题
后台架构
大数据技术: Haddop
搜索技术:Lucene:由 Apache 出品,Java 开发的开源全文搜索引擎。ElasticSerach 全文检索技术,解决海量数据搜索的问题
AI 技术
评论