凤凰架构读书笔记3-多级分流的优化,缓存,DNS,CDN,负载均衡

Step1: 客户端缓存多级分流

客户端缓存大概有 强制缓存和 协商缓存两种。他们的原理都是在服务器对客户端请求的响应中附带一些条件,如果客户端遇到相同请求,然后判断条件是否满足,如果满足,就直接用上一次服务器给予的响应来代替。

强制缓存

  • 定义:假设在某个时点到来以前,譬如收到响应后的 10 分钟内,资源的内容和状态一定不会被改变,因此客户端可以无须经过任何请求,在该时点前一直持有和使用该资源的本地缓存副本。
  • 设置方法:
    • 在header 中的 expire 中进行设置
    • 利用 header 中的 Cache-control 关键词来设置。Cache-control 中定义了一系列的参数比如 max-age、public、no-cache、no-transform,min-fresh 等等

协商缓存·

  • 定义:一种变化的检测,当检测的目标发生变化才进行下面的操作。
  • 根据资源的修改时间进行检查:如果此时服务端发现资源在该时间后没有被修改过,就只要返回一个 304/Not Modified 的响应即可,无须附带消息体。如果发现修改了,则会返回 200 和完整的消息体。关键词:If-Modified-Since
  • 根据资源的唯一标志(Etag)进行检查: 如果此时服务端计算后发现资源的唯一标识与上传回来的一致,说明资源没有被修改过,就只要返回一个 304/Not Modified 的响应即可,无须附带消息体。否则返回200。关键词:If-None-Match,Etag 的默认值是由 索引节点+大小+最后修改时间 hash 得来的。Etag 的一致性强于时间修改

Step2: DNS 系统多级分流

  • 1、客户端先检查本地的 DNS 缓存,查看是否存在该域名的地址记录。DNS 是以存活时间来衡量缓存的有效情况的,所以,如果某个域名改变了 IP 地址,DNS 服务器并没有任何机制去通知缓存了该地址的机器去更新或者失效掉缓存,只能依靠 TTL 超期后的重新获取来保证一致性。最终一致性
  • 2、客户端将地址发送给本机操作系统中配置的本地 DNS(Local DNS),这个本地 DNS 服务器可以由用户手工设置,也可以在 DHCP 分配时或者在拨号时从 PPP 服务器中自动获取到。
  • 3、本地 DNS 收到查询请求后,会按照“是否有www.icyfenix.com.cn的权威服务器”→“是否有icyfenix.com.cn的权威服务器”→“是否有com.cn的权威服务器”→“是否有cn的权威服务器”的顺序,依次查询自己的地址记录,如果都没有查询到,就会一直找到最后点号代表的根域名服务器为止。

Step3:网络 传输链路分流

不少人的第一直觉会认为传输链路是开发者完全不可控的因素,网络路由跳点的数量、运营商铺设线路的质量决定了线路带宽的大小、速率的高低。然而事实并非如此

  • 程序发出的请求能否与应用层、传输层协议提倡的方式相匹配,对传输的效率也会有极大影响。最容易体现这点的是那些前端网页的优化技巧

连接数优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于vue-virtual-scroll-list的使用,可以通过以下步骤进行操作: 1. 全局使用: 在Vue项目中,可以通过引入vue-seamless-scroll插件来使用vue-virtual-scroll-list。首先,需要在代码中引入Vue和scroll模块: ``` import Vue from 'vue' import scroll from 'vue-seamless-scroll' ``` 然后,使用Vue的use方法将scroll插件添加到Vue中: ``` Vue.use(scroll) ``` 或者,可以使用以下方式进行全局使用: ``` Vue.use(scroll, {componentName: 'scroll-seamless'}) ``` 2. 使用浏览器CDN: 如果你想使用Vue的CDN来加载vue-seamless-scroll插件,可以使用以下CDN链接: ``` https://cdn.jsdelivr.net/npm/vue-seamless-scroll@latest/dist/vue-seamless-scroll.min.js ``` 将上述链接放入你的HTML文件的`<script>`标签中。 3. 局部注册: 如果你只想在某个组件中使用vue-virtual-scroll-list,可以进行局部注册。首先,需要在代码中引入vue-seamless-scroll模块: ``` import vueSeamless from 'vue-seamless-scroll' ``` 然后,在组件中进行局部注册: ``` export default { components: { vueSeamless } } ``` 这样,你就可以在该组件中使用vue-virtual-scroll-list组件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue插件 vue-seamless-scroll实现list无缝滚动](https://blog.csdn.net/fd2025/article/details/124859180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值