2 期架构师训练营 - 第四周作业与总结
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?
典型的大型互联网应用系统主要面对的挑战是高并发、高可用和大数据。因为互联网的用户多,量级比一般的 2B 的要多得多,随着量级的增长会带来各种的问题,同一时间访问的请求数多,数据量大,服务不可用时影响面广,技术难度也越来越大。
应对高并发常用的技术是缓存、消息队列和异步化。缓存又有 CDN、反向代理、本地缓存和分布式缓存等,因为缓存比磁盘的访问速度要快,所以可以极为有效的提升操作速度。消息队列则是用来解耦,生产者消费者模式的最佳实践。异步化通过任务拆分多人合作的方式来提升效率,在单进程内就是多线程,体现在服务上就是分布式微服务。
高可用的主要应对手段还是冗余。冗余多份服务,服务集群,冗余多份数据,主从复制等等。随着云服务的发展,故障自动切换和自动伸缩容也已经变成了常见的手段。
至于大数据,在关系数据库时代,可以采用冷热数据分离、数据归档、读写分离和分库分表等方式,NoSQL 则通过不同的数据结构和分布式的手段来应对更大的数据量,比如 ElasticSearch 采用来倒排索引,NewSQL 则结合了关系数据库和 NoSQL 的优点,既可以采用关系数据库的方式进行数据操作,也解决了数据量大的问题,是未来的趋势,目前国内比较成熟的 NewSQL 产品有阿里的 OceanBase 和 PingCAP 的 TiDB。
评论