互联网应用架构概览-学习笔记

https://developer.aliyun.com/edu/course/33/learn#lesson/621

1 互联网应用架构概览

 

 负载均衡器:将用户请求分配给网页服务器处理WebServer

WebServer: 返回图片、网页等静态内容,将动态内容(购物车)等分配给应用服务器AppServer

缓存服务器:缓存常用的数据库结果

2 网络链路存在的问题及解决方案

 第一公里

BGP: 用各个运营商的网络都能最快访问同一个IP

第二公里 

CDN: 用户A访问静态内容后将内容缓存在最近的CDN节点,使得同一个CDN节点下其他用户能直接访问该缓存,不用直接访问服务器降低访问时间

 

 ?:DNS工作模式

 

3 CDN架构及配置

 

 使用前后对比:

使用前:由原站返回,用了BGP,延迟在20ms左右。 不用BGP则在几百ms左右

使用后:由CDN节点返回,延迟在10ms内

课时4:应用层横向扩展——负载均衡

 

 

 

 

 

 

 

 

 两个关键点:1 负载均很服务器 2 应用镜像化

课时5:应用层缓存提升性能

 

 应用服务器可以横向拓展,数据库不行。所以使用应用层缓存起到:1 降低数据库压力;2 提升数据库响应时间的作用

热点数据:例如电商网站里面用户的信息数据

 

 

 存储HTTP session等会话数据,避免因为应用服务器故障导致会话丢失

 两个应用缓存产品

课时6:同步转异步处理

 

 

 高并发:每秒几百万甚至上千万访问请求

 应用服务器例如Tomcat都是以线程池模式运行的。线程池有限,一般有上限,例如500-1000。如果用完就导致卡线程,系统卡死。

只有一个线程池很容易导致线程阻塞。

缓解方式之一:双线程池

结构层面解决办法:同步转异步,例如购物,只保留支付等核心缓解同步处理,在本线程完成,其他例如更新库存、下物流单,分发给其他模块异步解决,从而加快线程返回

 同步转异步的核心:

 产品:

阿里云消息队列

课时7:数据库架构设计优化-读写分离

 

 数据库难以横向扩张原因:为了保证数据库ACIE这几个原则,必须共用一个数据存储。这个存储最终会成为数据库并发的瓶颈。

具体优化手段:

读写分离

写并发度低,因为要加锁。阻塞读。读要等写完成。

 主要通过数据库的同步日志来对数据库进行同步

 

 

课时8:高可用架构方案实例

 可用性及安全性都有问题

双可用区架构

课时9:课程总结

 

 

 

猜你喜欢

转载自www.cnblogs.com/instant7/p/11801557.html