zoukankan      html  css  js  c++  java
  • 互联网应用架构概览-学习笔记

    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:课程总结

     

     

     

  • 相关阅读:
    志愿者招募 [NOI2008] [鬼畜网络流]
    莫队入门
    分块入门
    高速公路 [HAOI2012] [线段树]
    游历校园 [COGS 614] [欧拉图]
    网络吞吐量 [CQOI2015] [网络流]
    LeetCode 27. Remove Element
    LeetCode 26. Remove Duplicates from Sorted Array
    LeetCode 21. Merge Two Sorted Lists
    LeetCode 20. Valid Parentheses
  • 原文地址:https://www.cnblogs.com/instant7/p/11801557.html
Copyright © 2011-2022 走看看