互联网系统应用的技术方案
前端:对于互联网应用前端的迭代速度远远大于后端,且包含了大量的静态文件,例如图片,js,css等静态文件,架构上考虑动静分离,也就是所谓的前后端分离。虽然目前大多数IDC机房都接入了各大网络运营商,但是区域不同还是有会差异,通过CDN技术,可以解决这个问题,把静态资源缓存到离客户最近的CDN服务器,一方面提高了用户的访问速度,一方面减小了前端服务的压力。还有一部分前端页面可以有后端生成html。
负载均衡:负载均衡有很多方案,nginx,apache(性能不行),DNS轮询,F5等
微服务架构:互联网系统进过几个阶段的发展,从最初的单体应用,到目前比较流行的微服务,云原生架构,service mesh,发展还是很快的
分布式事务: 在CAP定理和BASE理论的基础上,总结出几种常见方案,2PC(两阶段提交),3PC(三阶段提交),TCC,事务消息等,各自有各自的优缺点,根据具体业务场景选择。
分布式锁:常用的是利用redis的lock功能来实现,当然也有用zk来实现的
分布式存储:提高文件存储的可靠性,和读写性能
数据库:互联网应用中,由于其海量数据,对数据的考验也很大,部署上从单体到主从,数据库设计上考虑分库分表,代码上考虑使用数据库中间件,例如myCat,sharing-jdbc等。
缓存:分摊数据库压力的利器,提高整个系统的吞吐和性能
服务治理 :服务治理在微服务架构下非常重要,配置,注册中心,服务监控(性能,资源等),日志分析追踪,服务的熔断,降级,限流,安全控制等等。
评论