架构师第四周作业
对于大型互联网应用系统,其使用的技术分到多个阶段。其中很多技术至今仍然常见。根据老师讲的,大概有如下十类:
1.应用和数据分离;
2.缓存改善系统性能;
3.使用集群改善并发的能力;
4.数据库的读写分离;
5.使用反向代理和CDN加速网站相应;
6.使用分布式文件系统和分布式数据库系统;
7.使用NoSql和搜索引擎;
8.业务拆分;
9.微服务和中台化;
10.大数据和人工智能。
因为我平时对互联网的应用接触的少,加上我之前是做数据的,也不去开发应用。我就上面我遇到的讲讲自己的理解。
1.应用和数据分离应该是一个必不可少的,就我接触的业务系统,基本上计算和存储是一体的,用的HADOOP集群,应用是单独部署的;这样,不会因为计算/数据集群的处理压力,或者业务系统的访问压力互相影响。但是我们也遇到了一些问题:因为数据和计算是一个集群,因此访问的时候,读取数据,如果集群负载过高,尤其I/O忙,似乎对访问是有影响的。这个问题目前还没有很好的解决。
2.业务在做应用的时候,用缓存的确可以改善性能。但是缓存更新的不及时,或者没有好的删除机制,也是个问题,常常后台数据更新了,界面没更新。
3.业务拆分和中台化。目前公司拆分了业务中台和数据中台,以及公共研发部。业务事业群内部也做了细化,但是业务之间依赖过高,经常集成要很多天才能成功。每次升级都惊心动魄,从来没有顺利的。另外,中台也一直被业务压制,牵着鼻子走。
评论