第四章:透明多级分流系统_《凤凰架构:构建可靠的大型分布式系统》
第四章:透明多级分流系统
一、客户端缓存
核心目标:减少重复请求,降低服务端压力。
1. 强制缓存
- 定义:客户端直接根据缓存规则决定是否使用本地缓存,无需与服务端交互。
- 关键HTTP头:
Cache-Control
:优先级最高,如max-age=3600
(缓存1小时)。Expires
:绝对时间戳(HTTP/1.0遗留字段)。
- 缓存策略:
- 资源未过期时直接使用本地缓存(状态码200,标记为
from cache
)。 - 资源过期后重新请求服务端。
- 资源未过期时直接使用本地缓存(状态码200,标记为
2. 协商缓存
- 定义:客户端需携带验证信息(如时间戳、哈希值)到服务端,由服务端决定是否使用缓存。
- 关键HTTP头:
Last-Modified
(服务端返回)与If-Modified-Since
(客户端发送):基于时间戳验证。ETag
(服务端返回)与If-None-Match
(客户端发送):基于哈希值验证。
- 状态码:若资源未修改,返回
304 Not Modified
,客户端使用本地缓存。
难点:
- 强制缓存与协商缓存的优先级关系(强制缓存优先)。
ETag
的生成算法对性能的影响(如使用强校验还是弱校验)。
二、域名解析(DNS)
核心目标:将域名映射为IP地址,实现流量初步分流。
1. DNS解析流程
- 浏览器缓存 → 本地Host文件 → 本地DNS服务器 → 根DNS → 权威DNS。
- 递归查询与迭代查询的区别。
2. DNS负载均衡
- 轮询策略:将同一域名解析为多个IP地址,实现简单负载均衡。
- 智能DNS:基于地理位置、网络质量动态返回最优IP。
3. 安全问题
- DNS劫持:篡改解析结果,需通过HTTPS或DNS over HTTPS(DoH)防范。
- TTL设置:过短的TTL增加DNS查询压力,过长的TTL降低灵活性。
三、传输链路优化
核心目标:提升网络传输效率与可靠性。
1. 连接数优化
- HTTP/1.1 Keep-Alive:复用TCP连接,减少握手开销。
- HTTP/2多路复用:单连接上并行传输多个请求,解决队头阻塞问题。
- HTTP/3 QUIC:基于UDP,解决TCP队头阻塞,支持0-RTT握手。
2. 传输压缩
- 内容编码:
gzip
、brotli
等算法压缩响应体。 - 传输编码:分块传输(
Transfer-Encoding: chunked
)支持流式传输。 - 头部压缩:HTTP/2使用HPACK算法压缩头部字段。
3. QUIC协议优势
- 0-RTT连接建立:减少握手延迟。
- 前向纠错(FEC):降低数据包重传概率。
- 连接迁移:IP变化时仍保持连接(适用于移动端)。
四、内容分发网络(CDN)
核心目标:将资源缓存到边缘节点,就近响应用户请求。
1. CDN路由解析
- DNS调度:根据用户IP返回最近的边缘节点IP。
- Anycast技术:同一IP地址广播到多个节点,路由选择最优路径。
2. 缓存策略
- 缓存预热:提前将资源推送到CDN节点。
- 缓存淘汰:基于LRU、TTL等算法更新资源。
- 动态内容加速:通过边缘计算处理动态请求(如API Gateway)。
3. CDN应用场景
- 静态资源加速:图片、CSS、JavaScript等。
- 流媒体分发:视频切片(HLS/DASH)、直播推流。
- 安全防护:DDoS防御、WAF集成。
五、负载均衡
核心目标:将请求分发到多个服务实例,提升系统吞吐与可用性。
1. 负载均衡层级
- 四层(L4):基于IP+端口(如Nginx的
stream
模块)。 - 七层(L7):基于HTTP头部、URL路径(如Nginx的
http
模块)。
2. 负载均衡算法
- 轮询(Round Robin):简单轮转,适用于实例性能均等。
- 加权轮询(Weighted RR):根据实例权重分配流量。
- 最少连接(Least Connections):优先选择连接数少的实例。
- 一致性哈希:相同请求路由到固定实例,适合有状态服务。
3. 会话保持(Session Affinity)
- Cookie注入:在响应中插入会话标识(如
JSESSIONID
)。 - IP哈希:基于客户端IP计算哈希值,固定路由。
六、服务端缓存
核心目标:减少数据库或计算密集型操作的压力。
1. 缓存分类
- 本地缓存:如Guava Cache、Caffeine(单机使用,无一致性保证)。
- 分布式缓存:如Redis、Memcached(多节点共享,需解决一致性)。
2. 缓存策略
- 过期策略:
- TTL(Time-To-Live):固定时间后失效。
- 惰性过期:访问时检查是否过期。
- 定期清理:后台线程扫描过期键。
- 淘汰策略:LRU、LFU、FIFO等。
3. 缓存问题与解决方案
- 缓存穿透:大量请求不存在的Key → 布隆过滤器拦截非法请求。
- 缓存雪崩:大量Key同时失效 → 随机化TTL或熔断降级。
- 缓存击穿:热点Key失效 → 互斥锁(如Redis的
SETNX
)或永不过期。
七、总结与设计要点
- 多级分流协同:客户端缓存 → CDN → 负载均衡 → 服务端缓存,逐级减少请求压力。
- 性能与一致性的权衡:缓存时间越长,性能越好,但可能牺牲数据一致性。
- 动态内容处理:边缘计算(如CDN的Lambda@Edge)支持动态请求加速。
- 协议选择:HTTP/2/3的普及对连接管理和传输效率有显著提升。
- 容灾设计:DNS故障切换、负载均衡健康检查、缓存降级策略。
多选题
一、客户端缓存相关
-
关于协商缓存机制的描述,正确的是:
A. 通过Cache-Control: max-age=3600
控制
B. 使用ETag
和Last-Modified
验证资源新鲜度
C. 响应状态码为200 (from cache)
时触发
D. 需要服务器验证资源是否过期
答案:B、D
解析:协商缓存通过ETag
/Last-Modified
与服务端验证资源是否更新,状态码为304 Not Modified
。Cache-Control
属于强制缓存,200 (from cache)
是强制缓存命中。 -
强制缓存可能导致的问题包括:
A. 客户端无法及时获取更新后的资源
B. 服务器负载增加
C. 浏览器重复发送验证请求
D. CDN边缘节点缓存过期不一致
答案:A、D
解析:强制缓存跳过服务端验证,可能导致客户端资源过期(A)。CDN节点缓存时间不一致会导致用户获取不同版本资源(D)。B错误(强制缓存减少服务端负载),C是协商缓存的特点。
二、域名解析与传输链路
-
DNS负载均衡的局限性包括:
A. 无法感知后端服务器的实时状态
B. 不支持基于地理位置的解析
C. 仅支持A记录类型
D. DNS记录TTL影响灵活性
答案:A、D
解析:DNS负载均衡无法动态感知服务器状态(A),且TTL过长会导致解析延迟(D)。B错误(支持地理位置解析),C错误(支持CNAME、SRV等)。 -
关于QUIC协议,正确的说法是:
A. 基于TCP实现可靠传输
B. 默认启用TLS 1.3加密
C. 解决队头阻塞问题
D. 握手延迟低于HTTP/2
答案:B、C、D
解析:QUIC基于UDP(A错误),默认加密(B),多路复用无队头阻塞(C),0-RTT握手降低延迟(D)。
三、CDN与负载均衡
-
CDN路由解析可能采用的技术包括:
A. DNS解析返回最优边缘节点IP
B. Anycast IP地址广播
C. HTTP重定向到最近节点
D. 客户端IP地理数据库匹配
答案:A、B、C
解析:DNS解析(A)、Anycast(B)、HTTP 302重定向(C)均为CDN路由策略。D是客户端自主行为,非CDN实现。 -
应用层负载均衡(如Nginx)的优势包括:
A. 支持基于HTTP头的路由规则
B. 可解析SSL/TLS加密流量
C. 高性能,仅依赖IP和端口转发
D. 实现会话保持(Session Persistence)
答案:A、B、D
解析:应用层负载均衡可解析HTTP头(A)、解密SSL(B)、会话保持(D)。C是网络层负载均衡的特点。
四、服务端缓存与风险
-
缓存击穿的解决方案包括:
A. 设置随机过期时间
B. 使用互斥锁(Mutex Lock)重建缓存
C. 布隆过滤器拦截无效查询
D. 缓存空值(Null Object)
答案:B、D
解析:缓存击穿指热点key失效后高并发请求穿透到DB。互斥锁(B)和缓存空值(D)可缓解。A是缓存雪崩方案,C是缓存穿透方案。 -
关于缓存一致性的描述,正确的是:
A. 强一致性可通过同步更新DB和缓存实现
B. 最终一致性模型中可能存在短暂脏数据
C. 写穿透(Write-Through)策略优先更新缓存
D. 延迟双删策略可解决并发写问题
答案:A、B、C
解析:强一致性需同步更新(A),最终一致性允许短暂不一致(B),写穿透先更新缓存(C)。D错误(延迟双删解决缓存失效后重建问题)。
五、综合设计
-
设计高可用传输链路时,必要的措施包括:
A. 启用HTTP/2多路复用减少连接数
B. 使用Brotli压缩替代Gzip
C. 配置TCP Fast Open(TFO)
D. 开启TLS会话恢复(Session Resumption)
答案:A、C、D
解析:HTTP/2多路复用(A)、TFO减少握手(C)、TLS会话恢复(D)提升性能。B是可选项,非必要。 -
在微服务架构中,服务端缓存设计需考虑:
A. 分布式锁实现原子性操作
B. 缓存分区避免单点故障
C. 本地缓存与远程缓存的多级分层
D. 使用一致性哈希均衡负载
答案:A、B、C、D
解析:分布式锁(A)、缓存分区(B)、多级缓存(C)、一致性哈希(D)均为微服务缓存设计要点。
答案与解析总结
- 客户端缓存:区分强制缓存(状态码200)与协商缓存(304),ETag/Last-Modified用于验证。
- 域名解析:DNS负载均衡依赖TTL和记录类型,无法动态感知服务器状态。
- 传输链路:QUIC基于UDP,解决队头阻塞,0-RTT握手;HTTP/2多路复用减少连接数。
- CDN:路由策略包括DNS、Anycast、HTTP重定向;负载均衡需考虑应用层规则。
- 服务端缓存:缓存击穿(互斥锁)、雪崩(随机过期)、穿透(布隆过滤器);一致性模型需权衡强一致与最终一致。
- 系统设计:多级缓存、分布式锁、一致性哈希是微服务缓存核心设计模式。
通过以上题目可全面覆盖第四章的核心技术点,重点考察对缓存策略、传输协议、负载均衡机制及分布式系统设计原则的理解深度。
相关文章:
第四章:透明多级分流系统_《凤凰架构:构建可靠的大型分布式系统》
第四章:透明多级分流系统 一、客户端缓存 核心目标:减少重复请求,降低服务端压力。 1. 强制缓存 定义:客户端直接根据缓存规则决定是否使用本地缓存,无需与服务端交互。关键HTTP头: Cache-Control&#…...
题解:AT_abc241_f [ABC241F] Skate
一道经典的 bfs 题。 提醒:本题解是为小白专做的,不想看的大佬请离开。 这道题首先一看就知道是 bfs,但是数据点不让我们过: 1 ≤ H , W ≤ 1 0 9 1\le H,W\le10^9 1≤H,W≤109。 那么我们就需要优化了,从哪儿下手…...
热题100-字母异位词分组
方法用Arrays.sort对每个String 进行排序,毕竟排序以后都一样了,然后放入Map中的key跟value,可以一对多,然后返回的时候只要返回Map中所有的values就可以了 class Solution {public List<List<String>> groupAnagram…...
WiFi加密协议
目录 1. 认证(Authentication) 1.1 开放系统认证(Open System Authentication) 1.2 共享密钥认证(Shared Key Authentication) 1.3 802.1X/EAP认证(企业级认证) 2. 关联(Association) 3. 加密协议(Security Handshake) 整体流程总结…...
【AI提示词】书籍推荐专家
提示说明 帮助您找到适合您的好书。 提示词 ## Role: 书籍推荐专家## Profile: - author: xxx - version: 1.0.0 - language: 中文 - description: 我是一位书籍推荐专家,我可以帮助您找到适合您的好书。## Goals: - 吸引读者的注意力,引导他们阅读更…...
Linux进程间通信——有名管道
一.概念 函数形式:int mkfifo(const char \*filename,mode_t mode); 功能:创建管道文件 参数:管道文件文件名\路径,权限,创建的文件权限仍然和umask有关系。 返回值:创建成功返回0,创建失败返回…...
JavaScript基础--01-JS简介
字面量:数字、字符串、布尔值 前言JavaScript背景Web前端有三层:发展历史JavaScript的发展:蒸蒸日上 JavaScript介绍JavaScript入门易学性JavaScript是脚本语言JavaScript的组成 JavaScript 的特点特点1:解释型语言特点2ÿ…...
2025年 能够有效提升AI的生成质量和逻辑严谨性 的通用型系统提示
以下是三个经过精心设计的通用型系统提示(System Prompt),能够有效提升AI的生成质量和逻辑严谨性,适用于各类对话、分析和创作场景: Prompt 1 - 专家级分步验证模式 你是一个具备跨领域知识整合能力的超级AIÿ…...
xss攻击
XSS 攻击,即跨站脚本攻击(Cross - Site Scripting),是一种常见的 Web 应用程序安全漏洞。以下是关于它的详细介绍: 原理 输入输出控制不严:程序对用户输入和输出处理不当。用户输入的数据没有经过充分的过…...
Node.js核心模块及Api详解
以下是 Node.js 最常用的核心模块及 API 详解,按使用频率和重要性分类整理: 一、高频核心模块 1. fs 文件系统 const fs require(fs); const fsPromises require(fs).promises; // Promise 版本// 异步读取文件(推荐) fs.read…...
解析keras.layers.Layer中的权重参数
文章目录 概要__init__()build()add_weight() 概要 keras.layers.Layers是所有层对象的父类,在keras.layers下所有实现类都是其子类,自定义层时需要继承该类。 init() Layer的构造函数,需要注意两个参数trainable和name trainable:指定该层…...
原型设计工具即时设计的简单使用攻略
即时设计是一款国产在线协同设计工具,支持从原型设计到开发交付的全流程,尤其擅长Web/App界面原型制作。其核心优势体现在: • 零门槛入门:浏览器直接访问无需安装,中文界面友好 • 资源生态完善:内置3000原…...
深入解析C++智能指针:从内存管理到现代编程实践
一、智能指针核心概念 1.1 智能指针的本质 智能指针是基于**RAII(资源获取即初始化)**的封装类,通过对象生命周期自动管理动态内存。与传统指针相比: 特性原始指针智能指针内存管理手动自动空指针检查需显式判断支持空状态检测…...
在 Langflow 中构建灵活的自定义组件:从基础到高级实践
本文深入探讨了如何在 Langflow 平台中创建功能丰富的自定义组件。通过详细的目录结构解析、分步实现指南和多个实战案例,帮助开发者掌握利用 Python 生态扩展低代码平台的方法,打造高效的数据处理流程。 理解组件架构设计 自定义组件是在 Langflow 中创…...
【数学建模】(时间序列模型)ARIMA时间序列模型
ARIMA时间序列模型详解及常见时间序列模型概览 文章目录 ARIMA时间序列模型详解及常见时间序列模型概览1 引言2 ARIMA模型的基本概念3 ARIMA模型的组成部分详解3.1 AR模型 (自回归模型)3.2 MA模型 (移动平均模型)3 I (差分) 4 ARIMA模型的建模步骤5 Python实现ARIMA模型6 常见时…...
模版的特性及其编译分离
1.模版的分类 模版参数分为 类型形参 和 非类型形参 类型形参:出现在模版参数列表中,跟在class和typename之后的参数类型名称 非类型形参:就是用一个常量作为类(函数)模版的一个参数,在类(函…...
8电池_多绕组反激式变压器均衡_4模式
(1)8节串联锂离子电池组 (2)多绕组双向反激式变压器,1个变压器解决多电池均衡 (3)亮点:支持1建切换4种均衡算法–>全网唯一 (4)多绕组变压器均衡也能设计多种均衡算法–>全网唯一 锂离子电池均衡,均衡拓扑,均衡算法...
6.1 python加载win32或者C#的dll的方法
python很方便的可以加载win32的方法以及C#编写的dll中的方法或者变量,大致过程如下。 一.python加载win32的方法,使用win32api 1.安装库win32api pip install win32api 2.加载所需的win32函数并且调用 import win32api win32api.MessageBox(0,"…...
STP学习
{所有内容均来自于西安欧鹏的陈俊老师} STP生成树 当二层交换机意外成环路的时候会发生: 1.广播风暴:当广播帧进入环路时,会被不断复制并传输,导致网络中的广播流量急剧增加,消耗大量的网络带宽,降低网络…...
特征值与特征向量:从理论到应用的全面解析
特征值与特征向量:从理论到应用的全面解析 一、特征值与特征向量核心概念 定义 对于方阵 ( A ),若存在标量 ( \lambda ) 和非零向量 ( v ),使得: [ A v \lambda v ] 则 ( \lambda ) 为特征值,( v ) 为对应的特征向…...
【Python】数组的条件逻辑统计运算元素排序
【Python】数组的条件逻辑&统计运算&元素排序: 一.条件逻辑二.统计运算三.数组元素排序检索数组元素是否满足条件查找数组的唯一元素判断元素是否在其他数组中 一.条件逻辑 import numpy as np arr_x np.array([1, 5, 7]) arr_y np.array([2, 6, 8]) arr_…...
数据流和重定向
1、数据流 不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两 条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去 标准输入(standard input,简称stdinÿ…...
Jetpack Compose 自定义组件完全指南
Jetpack Compose 自定义组件完全指南 Compose 的声明式 UI 范式为创建自定义组件提供了前所未有的灵活性。本指南将带你从基础到高级全面掌握 Compose 自定义组件的开发技巧。 一、自定义组件基础 1.1 基本结构 一个最简单的自定义组件: Composable fun Greeti…...
ETF 场内基金是什么?佣金最低又是多少呢?
嘿,朋友们,大家好啊,我是StockMasterX,今天咱们就坐下来慢慢聊聊这个话题,ETF 场内基金到底是个啥东西,它的佣金最低能到多少,真的是个值得深挖的问题。 说起ETF,我还记得刚入行那会…...
【C++篇】类与对象(中篇) 解密C++类的核心:六大默认成员函数详解与避坑指南
文章目录 前言一、类的六个默认成员函数二、构造函数1. 概念2. 特性(牢记) 三、析构函数1. 概念2. 特性(牢记) 四、拷贝构造函数1. 概念2. 特性(牢记) 五、赋值运算符重载1. 运算符重载2. 赋值运算符重载前…...
001 vue
https://cn.vuejs.org/ 文章目录 v-bindv-modelv-on修饰符条件渲染/控制:v-if v-show列表渲染 M:即Model,模型,包括数据和一些基本操作 V:即View,视图,页面渲染结果 VM:即View-Mode…...
web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS?
web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS? 1. ExpressionWebEditorFrame 控件的内核及解析机制 在 Visual Studio 中用于 Web Forms 可视化开发的 ExpressionWebEditorFrame 控件主要基于 Internet…...
$R^n$超平面约束下的向量列
原向量: x → \overset{\rightarrow}{x} x→ 与 x → \overset{\rightarrow}{x} x→法向相同的法向量(与 x → \overset{\rightarrow}{x} x→同向) ( x → ⋅ n → ∣ n → ∣ 2 ) n → (\frac{\overset{\rightarrow}x\cdot\overset{\righta…...
英伟达新一代GPU架构(50系列显卡)PyTorch兼容性解决方案
随着NVIDIA不断推出基于新架构的GPU产品,机器学习框架需要相应地更新以支持这些硬件。本文记录了在RTX 5070 Ti上运行PyTorch时遇到的CUDA兼容性问题,并详细分析了问题根源及其解决方案,以期为遇到类似情况的开发者提供参考。 在Anaconda虚…...
16.2Linux自带的LED灯驱动实验(详细编写)_csdn
这个实验不用自己编写代码。 1、在linux源代码中,打开 stm32mp15-pinctrl.dtsi 文件并进行修改: make uImage LOADADDR0XC2000040 -j8 //编译内核然后: 2、修改设备节点,打开 stm32mp157d-atk.dts: 其中࿱…...
Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践(174)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
HashMap 底层原理详解
1. 核心数据结构 JDK 1.7 及之前:数组 链表 JDK 1.8 及之后:数组 链表/红黑树(链表长度 ≥8 时转红黑树,≤6 时退化为链表) // JDK 1.8 的 Node 定义(链表节点) static class Node<K,V&g…...
重生之我是去噪高手——diffusion model
diffusion model是如何运作的? 想象一下,你有一张清晰的图片。扩散模型的核心思想分为两个过程: 前向过程(Forward Process / Diffusion Process):逐步加噪反向过程(Reverse Process / Denois…...
FfreeRTOS有阻塞作用的API
在 FreeRTOS 中,阻塞 API 是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。以下是常见的阻塞 API 分类及示例: 1. 任务延迟(延时) vTaskDelay() 使任务阻塞指定的时间(以系统…...
app逆向专题二:app逆向流程
app逆向专题二:app逆向流程 一、app逆向说明二、拿到APP应用的apk三、使用工具进行查壳四、有壳需要先进行脱壳,拿到dex文件进行反编译五、使用Jadx-Gui或其他工具进行反编译,分析源码;六、根据app的抓包情况拿到加密的关键词参数…...
VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化
在软件开发、系统测试以及技术学习等诸多场景中,使用虚拟机安装操作系统是一种灵活且高效的方式。Ubuntu 作为一款优秀的开源操作系统,在 VMware 虚拟机上的安装与优化备受关注。接下来,将为大家带来 VMware 安装 Ubuntu 的全流程实战指南&am…...
论文阅读笔记——RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
RDT-1B 论文 模型表达与泛化能力:由于双臂操作中动作空间维度是单臂空间的两倍,传统方法难以建模其多模态分布。 数据:双臂数据少且不同机器人的物理结构和动作空间差异(如关节数、运动范围)导致数据分布不一致&#x…...
如何一天背300到500个单词
买一本有结构分析或词源注释的目标词汇书。 买一盒口香糖。 准备一摞空白的A4纸。 找一间用于冥想的黑屋子(眼晴闭上就可以了)。 将要背诵的单词进行分组: 5个一小组10个一中组50个一大组100个一个基本包或单元。给自己一个约定,比如背完一中组或一大组单词,嚼一粒口香糖…...
vs环境中编译osg以及osgQt
1、下载 OpenSceneGraph 获取源代码 您可以通过以下方式获取 OSG 源代码: 官网下载:https://github.com/openscenegraph/OpenSceneGraph/releases 使用 git 克隆: git clone https://github.com/openscenegraph/OpenSceneGraph.git 2、下载必要的第三方依赖库 依赖库 ht…...
C++ - 头文件基础(常用标准库头文件、自定义头文件、头文件引入方式、防止头文件重复包含机制)
一、头文件 在 C 中,头文件(.h)用于函数声明、类定义、宏定义等等 在 Visual Studio 中,头文件通常放在头文件目录中,头文件实现通常放在源文件目录中 二、常用标准库头文件 1、输入输出 <iostream> 标准输入…...
12款字重国外法国风格复古报纸日历设计衬线英文字体安装包 Claire Font Family
Claire 是一个带有坚固衬线的字体系列。该系列中的几种粗细字体非常适合设置大量连续文本;另一方面,极轻和极重的字体在显示应用中配合使用效果很好。Clair 中的字体具有垂直轴,其设计让人联想到当代报纸字体以及 Century 模型中的十九世纪晚…...
Java 类型转换和泛型原理(JVM 层面)
一、类型转换 概念解释: 编译类型:在编译时确定,保存在虚拟机栈的栈帧中的局部变量表中; 运行类型:在运行时确定,由保存在局部变量表中变量指向的堆中对象实例的类型决定(存储在对象头中&…...
ffmpeg基础知识入门
文章目录 📦 1. **容器(Container)**✅ 定义:✅ 举例:✅ 功能: 📶 2. **媒体流(Stream)**✅ 定义:✅ 举例:✅ 流和容器关系: …...
k8s 1.23升级1.24
0、简介 这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 我这里设置的master2可调度pod,将master2的污点去掉 kubectl de…...
MIPI与DVP接口摄像头:深度解析与应用指南
1、MIPI 1.1 MIPI简介 MIPI是什么?MIPI:mobile industry processor interface移动行业处理器接口。它是一个由Intel、Motorola、Nokia、NXP、Samsung、ST(意法半导体)和TI(德州仪器)等公司发起的开放标准…...
liunx输入法
1安装fcitx5 sudo apt update sudo apt install fcitx fcitx-pinyin 2配置为默认输入法 设置-》系统-》区域和语言 点击系统弹出语言和支持选择键盘输入法系统 3设置设置 fcitx-configtool 如果没显示需要重启电脑 4配置fcitx 把搜狗输入法放到第一位(点击下面…...
马吕斯定律(Malus‘s Law)
马吕斯定律(Maluss Law)详解 马吕斯定律是偏振光学中的基本定律,由法国物理学家**tienne-Louis Malus**于1809年发现,描述了**线偏振光**通过检偏器后的光强变化规律。 2. 实验验证 3. 数学推导 4. 关键应用 5. 特殊情况讨论 …...
大厂算法面试 7 天冲刺:第6天-树与图深度剖析——高频算法面试题 Java 实战
🧠 第6天:树与图深度剖析——高频算法面试题 & Java 实战 📚 一、核心知识概览 Overview 1. 树(Tree) 树是一种非线性数据结构,常见于面试中的二叉树(Binary Tree)、二叉搜索树…...
C语言编译和链接错题
一、错题重现 1.用在switch语句中的关键字不包含哪个?( ) A.continue B.break C.default D.case 2.下面代码的结果是:( ) A.3 B.4 C.随机值 D.5 3.下面那个不是转义字符? A.\n B.\060 C.\q D.\b 二、错因分析及思考 1.题目看…...
吴恩达深度学习复盘(7)一个简单训练示例
简介 本篇简单讲解简单的神经网络训练。通过回顾逻辑回归模型训练,了解神经网络训练的相关内容。比如训练步骤、损失函数、优化算法以及深度学习库的使用,了解训练过程中的相关概念。 例子 手写数字识别(判断是 0 还是 1)。这是…...