架构师训练营第四周
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
一、前端
1. DNS:基于访问用户的IP地址,把用户请求路由到最近的Nginx服务器;
2. CDN:通过缓存静态资源提升用户的访问性能;
3. Nginx服务器:实现应用服务器的负载均衡、静态资源或数据的缓存;
4. 前端资源:单独部署前端资源,实现前后端分离;
二、应用服务
1、微服务拆分:基于业务,对应用进行拆分,实现相同业务的单独部署,实现各业务之间的高内聚、低耦合,技术上借助spring cloud或dubbo等微服务框架来实现;
2、MQ中间件:通过分析具体的业务场景,通过MQ中间件,实现功能的解耦;
3、服务器中间件:实现应用服务的部署,如docker、tomcat等;
4、缓存:通过JVM(单机)内存或redis(集群共享)等实现某些业务数据的缓存;
5、分库分表中间件:通过mycat或sharding jdbc等中间件实现数据的分库分表;
6、ZK中间件:实现集群内部数据的分发;
三、数据存储
1. 数据存储:把产出的业务数据存储在oracle、mysql、PostGreSql等关系型数据中,基于实际的业务场景,通过读写分离来分流数据的访问压力;
2. noSQL:常用的nosql数据库有mongoDB、HBase等;
四、文件存储
存储应用系统涉及的文件;
五、大数据
常用的大数据有Hadoop、Spark、Flink等,Hadoop主要是批处理,Spark可以支持微批,Flink可以支持流计算;
评论