架构师训练营 -- 第四周作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
使用消息队列(Message Queue)如 kafka, RockeMQ,RabbitMQ等,使用消息队列是为了解决应用解耦、异步消息、流量削峰等问题。
使用缓存 如 Memcached、Redis这类NoSQL数据库是为了缓解后台数据库的压力,因为缓存的数据都是在内存中,要比直接从数据库里面读取速度快上N倍不止,同时缓存中还可以做一些在关系型数据库中不支持的一些操作。
使用负载均衡技术 如 Nginx的upstream、LVS将前端大量请求分散转发至不同的后端服务器进行处理,用以减轻服务器的负载压力。
使用CDN技术将一些静态资源直接存储在离用户最近的机房里面,避免每次请求直接请求源站,同时也是能够给用户以更快的响应速度、更好的体验。
使用搜索引擎 如 ElasticSearch 这样的组件从大量的数据中进行查询时提高查询效率,同是 Kibna能够以可视化的界面进行展示,也可以对用户的行为进行一些数据分析。
使用大数据相关的技术栈 如 Hadoop、HBASE、Apache Flink、Spark解决海量数据的存储以及运算等问题。
还有许多就不一一进行列举了,反正现在的互联网基本上都在使用这些技术方案去解决在业务发展过程中遇到的一些问题。
版权声明: 本文为 InfoQ 作者【_MISSYOURLOVE】的原创文章。
原文链接:【http://xie.infoq.cn/article/19a2d80beba30925736f8969e】。未经作者许可,禁止转载。
评论