AweiP Cache
type: channel
link: https://aweip.com/
description: My Cache
items: Qwen2.5-7B 微调与部署全流程 SOP
items: 对SSD知识的学习汇总
items: 人生场景切片记录
items: 计算机网络个人笔记
items: OpenWrt路由下配置AP模式
items: Windows文件名过长带来的奇妙BUG
items: 《应用密码学与网络安全》知识总结
items: 《分布式计算》总结
items: 《星空》
items: 智锐配镜经历

Qwen2.5-7B 微调与部署全流程 SOP
type: item
date: 2025-12-11T22:52:00+08:00
description: 写在文前：没想到最后也屈服于 AI 了，在各种资料和 Gemini 的帮助下完成了一次微调和部署流程 项目目标：基于 Qwen2.5-7B-Instruct 模型，使用 PsyQA 数据集微调一个具备共情能力的心理咨询 AI，并量化部署到 Ollama。 硬件环境：NVIDIA 5090 32G + 100G 可用磁盘空间 基座模型：Qwen/Qwen2.5-7B-Instruct 第一阶段：环境与数据准备 1. 环境搭建 推荐使用 Conda 创建独立环境，防止依赖冲突。 Bash # 1. 创建并激活虚拟环境 conda create -n qwen_finetune python=3.10 -y conda activate qwen_finetune # 2. 克隆 LLaMA-Factory git clone --depth 1 https://github.com/hiyouga/LLAMA-Factory.git cd LLAMA-Factory # 3. 安装核心依赖 pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple # 4. 安装加速库 (Flash Attention 2) # 注意：这步极易报错，确保 CUDA 版本与 Torch 匹配 pip install flash-attn --no-build-isolation 2. 数据处理与清洗 将 HF 格式转换为 LLaMA-Factory 支持的 Alpaca/JSONL 格式。 脚本：preprocess_psyqa.py Python import json from datasets import load_dataset def format_psyqa(output_file): print("正在加载数据集 lsy641/PsyQA ...") try: # 建议先下载到本地 /root/autodl-tmp/data/ 避免网络中断 dataset = load_dataset("lsy641/PsyQA", split="train") except Exception as e: print(f"加载失败: {e}") return print(f"原始数据量: {len(dataset)}") formatted_data = [] system_prompt = "你是一位共情能力强、专业的心理咨询师。请根据求助者的描述，给出温暖、建设性的建议。" for item in dataset: question = item.get('description', '') or item.get('question', '') answer = item.get('answer', '') # 简单清洗 if len(question) < 10 or len(answer) < 10: continue formatted_data.append({ "instruction": system_prompt, "input": question, "output": answer }) with open(output_file, 'w', encoding='utf-8') as f: json.dump(formatted_data, f, ensure_ascii=False, indent=2) print(f"✅ 处理完成！有效数据: {len(formatted_data)} 条。保存至: {output_file}") if __name__ == "__main__": # 确保 data 目录存在 import os os.makedirs("data", exist_ok=True) format_psyqa("data/psyqa_formatted.json") 生成文本样例： { "instruction": "你是一位共情能力强、专业的心理咨询师。请根据求助者的描述，给出温暖、建设性的建议。", "input": "我想实现自己的目标，但是心灵匮乏，没有能量，所以行动力很低心灵能量如何补？", "output": "楼主你好呀，给你温暖的抱抱～在你的问题描述中，你能够感知到自己是一个有目标的人，但是你却缺乏【能量】，这能量更学术一点的来说，就是动机。给我们做出行为反应的更多的就是我们的动机，当我们的动机越强烈越明确的时候，我们就能够越高效的、迅速的做出行为反应。或许你需要去寻找这个目标对你来说的意义，你为什么渴望有这样的一个目标？在这你还需要去完善你的行动，可能你有很强烈的需求去促进你的行为，但是可…

对SSD知识的学习汇总
type: item
date: 2025-08-10T22:46:42+08:00
description: 感谢HOMOLAB的精彩文章，让我对SSD有了更为科学的认识 PART I 固态硬盘（SSD）基础 1.1 发展历史与演进 NAND Flash 原理：1145141919810个浮栅晶体管平铺堆叠（发配到模电区）。把晶体管在不同挡位的电压（浮栅晶体管捕获存储的电子数量差异导致电压不同）当作信息。 比特数与存储密度 单元 数据量（二进制位数） SLC 1 MLC 2 TLC 3 QLC 4 性能与耐用性 从SLC➡MLC➡TLC➡QLC： 存储数据难度上升：主控在写入数据时，需要精确地控制浮栅中电子的数量； 读取数据的难度上升：主控在读取数据时，也必须非常精确地判断当前电压属于哪个区间，否则可能导致误读； 耐久性降低：存储信息越多，对电压精度要求越高。擦写次数越多，浮栅的磨损就越大，电压状态就越不稳定。 原因：如QLC，将16种不同的电压状态挤在一个小小的浮栅晶体管里，就好比在一条狭窄的公路上行驶16辆车。每辆车之间的安全距离会变得非常小。 1.2 SSD 的基本构成 NAND Flash 存储芯片：浮栅晶体管堆叠，有着比较玄学的寿命说 Block（擦除的最小单位） ➡ Page（读写最小单位）➡ Cell 主控（Controller）：硬盘里管理数据的大脑，在如今SSD产品损坏的案例里一般是由于主控物理暴毙或者固件暴毙导致的 DRAM 缓存（不是都有） 无缓（DRAMless SSD） 有缓（DRAM SSD）：存储FTL表，便于寻址 PART II SSD工作原理 2.1 读写与擦除 REW（Read-Erase-Write） 固态的擦除是以block为单位、读写以page为单位，nand的物理特性决定了他不能覆盖写入。因此如果我们要对一个已有数据的page进行写入，那么必须先要把这个page所在的block中的数据读出，block清空后再把所有数据写进去。 2.2 核心技术与机制 PART III SSD性能参数与协议 3.1 关键性能指标 IOPS（Input/Output Operations Per Second）：如英文名，硬盘每秒钟能够处理的输入/输出操作次数。 传统指标：随机和顺序是HDD时代传承下来的概念，在SSD中或许不再适用，但仍然被广泛使用。 顺序读写（Sequential Read/Write）： 顺序读写是指数据在存储介质上连续存储和读取的方式，通常用于大文件传输或连续数据流的处理。参数通过用大文件进行读写测试来获得。 随机读写（Random Read/Write）：随机读写是指数据在存储介质上分散存储和读取的方式，通常用于小文件或随机访问的数据。一般使用大量小文件进行读写测试。 相关论述文章《随机 稳态 缓外 无知以及谎言,不存在的随机写入》总结： SSD数据存储在NAND的多个页（Page）中，页是SSD的最小读写单位； SSD读取数据时，一般需要根据FTL（Flash Translation Layer）将逻辑地址转换为物理地址； FTL表的查询需要时间，如果一个文件分布在临近的物理空间上,那么对其进行读写的操作就不需要多次查询FTL表从而节省开销； FTL表的映射是非线性的，物理上连续的存储单元未必在逻辑上是连续的； 对于一个大块的连续文件写入而言,看起来是顺序写入，但数据不会集中在某一个NAND的某一个DIE的某一个plane的某一个block,而是分布在不同NAND上的不同block中； 因此，顺序读写和随机读写的概念对于SSD并不完全适用，SSD的性能更多地取决于其内部结构和数据管理方式；因此，顺序读写和随机读写的概念对于SSD并不完全适用，SSD的性能更多地取决于其内部结构和数据管理方式； 缓外速度（Sustained Write Speed）：在SLC Cache技术应用后产生的概念 定义：缓外速度是指在SSD的SLC Cache被填满后，数据写入到TLC或QLC NAND Flash时的速度。通常情况下，SLC Cache可以提供更高的写入速度，而缓外速度则较低。 备注：缓外速度不等同于SSD的实际写入速度，在如今常常导致用户对SSD性能的误解。实际上，连续大容量写入分多个阶段（关键词：SLC Cache释放、REW、Writeback惩罚、TLC/QLC直写、GC回收），而这受到厂家设计策略的影响，部分用户观察到的缓外速度没有太大的意义。 WAF（Write Amplification Factor） 定义：写放大因子，表示实际写入的数据量与原始数据量的比率。 产生原因：SSD是以页为单位进行读写，但由于NAND Flash的特性，无法直接覆盖写入，因此需要先擦除整个块（Block），然后再写入新的数据。这种操作会导致实际写入的数据量大于原始数据量，从而产生写放大现象。 WA…

人生场景切片记录
type: item
date: 2025-03-12T15:38:50+08:00
description: 午睡，梦中，将醒未醒时，意识恍然一掠发觉自己在那片依旧熟悉的黄绿相间的小路上，天上斜斜得挂着略有些晒人的太阳，路边疯长着有腰高的杂草，从层层叶间掠过扑面而来的是夹杂着草木青味的温热空气。虫鸣、鸟啼，铺洒在初夏回家的路上。

计算机网络个人笔记
type: item
date: 2024-11-19T19:59:00+08:00
description: 第一章 计算机网络体系结构 I.计算机网络概述 概念 计算机网络是互连的、自治的计算机集合。 由节点（Node）和连接这些节点的链路（Link）组成。 组成 组成部分：硬件、软件、协议 工作方式： 边缘部分：用户直接使用的主机 核心部分：网络的基础设施，如路由器、交换机等 功能组成： 通信子网：负责数据传输 资源子网：负责资源管理 功能 数据通信 资源共享 分布式处理 提高可靠性 负载均衡 交换技术 种类 交换技术 特点 优点 缺点 电路交换 1.需要建立物理连接通道2.传输过程中通道被==独占== 1.通信时延2.适用于实时通信3.能够完全有序传输 1.建立连接时间长2.线路利用率低灵活性差3.难以实现差错控制 报文交换 1.报文封装全部信息2.==全部存储==后再转发3.无需建立连接 1.适用于短报文传输2.适用==不确定==通信量3.线路可靠4.动态分配线路 1.转发时延长2.缓存开销大3.难以实现差错控制 分组交换 1.报文分割成==固定长度==的分组2.==存储转发==3.无需建立连接 1.减少出错概率2.简化缓存3.流水线加速 1.存在存储转发时延2.需要额外信息量3.可能出现乱序、丢失、重复分组 [!Important] 报文转发和分组转发存在处理延迟，即上图中的空隙 分组转发花费时间和中间节点数量有关系，一些情况下可以简便运算 区别 计算机的数据传送往往是突发式的，采用电路交换时通信线路的利用率很低。报文交换和分组交换不需要建立连接（即预先分配通信资源），在传送计算机的突发数据时可以提高通信线路的利用率 将报文构造成若干个更小的分组进行分组交换，比将整个报文进行报文交换的时延要小，并且还可以避免太长的报文长时间占用链路，有利于差错控制，同时具有更好的灵活性。 分类 分布范围 广域网（WAN） 城域网（MAN） 局域网（LAN） 个人区域网（PAN） 传输技术 广播式网络 点对点网络 拓扑结构 总线型 星型 环型 网状型 关于差别，在通信效率、可靠性、扩展性、成本等方面出题 网络性能指标 [!Important] 速率中的K、M、G表示的是十进制，分别为10^3、10^6、10^9 速率 带宽 模拟信号：频率范围（Hz） 计算机网络：最高数据传输速率 吞吐量：单位时间通过网络的实际数据量 时延 发送时延 t_s = 数据块长度/发送速率 传播时延 t_c = 信道长度/传播速率 处理时延 排队时延 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延 时延带宽积: 传播时延 * 带宽 往返时延 RTT=|发送报文时间 - 接收确认ack时间| ！信道利用率 U 空闲时延 D_0、当前时延 D D = \frac{D_0}{1-U}，U 越大，当前时延 D 越大 II.计算机网络体系结构 分层结构 分层基本原则 每层实现特定功能 各层间由可以互相通信的接口 下层独立于上层，即没有上层也能工作 上层==单向==使用下层服务 结构元素 实体 实体：在通信过程中能够发送或接收信息的硬件或软件模块 对等实体：在通信过程中能够相互通信的实体 协议数据单元（PDU）：对等层水平传递的数据单元，分为数据和控制信息 服务数据单元（SDU）：对等层垂直传递的数据单元，服务上层 协议控制信息（PCI）：对等层水平传递的控制信息 [!Note] 第n层收到的PDUs称为n-1层的SDUs，加上第n层的PCI就构成了n层的PDUs ！协议、接口、服务 协议（水平关系） 协议 含义 作用 举例 语法 数据格式 数据的结构和编码 TCP 报文的格式由语法决定 语义 具体操作流程 何时发何种控制信息、如何应答 TCP 三次握手具体操作 同步（时序） 操作条件、时序 明确数据交互的顺序流程 TCP 连接的建立、关闭报文时序 接口 服务访问点 SAP（Service Access Point）：同一节点内相邻层之间的接口，提供服务访问点 服务（垂直关系） 服务原语：服务提供者和服务用户之间的通信操作 请求：服务用户向服务提供者发出的请求，请求服务提供者执行某种操作 指示：服务提供者向服务用户发出的指示，要求服务用户执行某种操作 响应：服务用户向服务提供者发出的响应，表示对指示的响应 证实：服务提供者向服务用户发出的证实，表示对请求的证实 服务分类 面向连接服务和无连接服务：是否建立连接 可靠服务和不可靠服务：是否保证数据传输的可靠性 有应答服务和无应答服务：是否需要对数据传输进行应答 OSI参考模型 低三层为通信子网，高三层为资源子网 层次 名称 传输单位 功能 协议 1 物理层 比特 1.规定物理接口参数2.规定信号意义和电气特征 IEEE802.3 2 数据链路层 帧 1.速率协调2.差错检测（==只能丢弃==）3.流量控制 SDLC…

OpenWrt路由下配置AP模式
type: item
date: 2024-09-04T11:23:00+08:00
description: 由于在当前的网络环境下部署了软路由+NAS，由软路由延申到我房间的硬路由在DHCP模式下的网络多了一层NAT，无法向上一层访问，但刷了OpenWrt的硬路由没有常见商用路由器的AP模式切换，让路由器将仅作为无线信号扩展设备。只能逐一对LAN口和WAN口以及防火墙进行设定，下文记录一下操作和背后的原理。 1. 关闭 DHCP 服务 进入 Network → Interfaces。 编辑 LAN 接口，在 DHCP Server 选项卡下，勾选 Ignore interface。 保存并应用。 既然只作为 AP 使用了，自然不需要 DHCP 为局域网内的设备自动分配 IP 地址了 2. 设置 LAN 口 IP（避免冲突） 仍在 LAN 接口的 General Settings 选项卡下： 协议切换为静态地址，把 IPv4 地址改为与上级主路由同一网段且不冲突的 IP。 例如：主路由 IP 是 192.168.2.1，此处可设置为 192.168.2.20。 子网掩码与主路由一致（通常 255.255.255.0）。 网关填写主路由 IP（如 192.168.2.1）。 DNS 服务器可填写主路由 IP 或公共 DNS（如 8.8.8.8）。 保存并应用。 此 IP 地址的存在意义： 提供接口地址管理硬路由本身； 和上级软路由网络层通信。 个人曾经的误区：把 AP 模式和交换机模式混为一谈 3. 关闭防火墙并桥接接口 进入 Network → Firewall。 删除所有防火墙规则，或直接关闭防火墙： 在 General Settings 选项卡，将 Forward、Input、Output 全部设为 ACCEPT。 或直接删除所有防火墙区域（确保不阻断流量）。 4. WAN 和 WAN6 处理 方案一 如果固件里有 switch （交换机）的设置项，可以很方便的通过以下办法来实现将 OpenWrt 设置为交换机 / AP 模式，可以充分利用物理 WAN 口充当 LAN 口来用。 进入 Network → Switch； 将 VLAN ID 1 中的 WAN 口设置为未标记； 删除 Interfaces 中的 WAN 口（包括 WAN6）。 方案二 如果固件里没有 switch （交换机）的设置项，可以进行以下设置，但此设置会浪费一个 WAN 口。 删除 Interfaces 中的 WAN 口（包括 WAN6）； 将连接主路由的网线连接到WAN口。

Windows文件名过长带来的奇妙BUG
type: item
date: 2024-06-01T17:11:00+08:00
description: 起因 当我在网页版Jellyfin直接播放视频时，虽然内网能够满足数千兆每秒的网速，这些视频仍然经常卡顿（后面分析是网页播放是直接用NAS的核显解码，但它性能捉急），我就选择直接下载到本地。 由于Jellyfin的限制，下载到本地的文件中文名称是经过URL编码后的，比如其中一个文件为“%E8%83%86%E5%A4%A7%E5%85%9A+S01E07.mkv”，看起来是16进制的Unicode编码。 问题 后续在我清理磁盘时，我发现Windows在图形界面上直接删除此类文件时会异常卡死，而换使用终端命令删除时居然无法定位到这份文件，它就像一个黑户一样钉在了磁盘上，Windows的文件系统拿它丝毫没有办法。这就很奇妙了，之前从未遇到过这种情况。 解决 经过一系列查询检索，最终定位到Windows的一个奇妙特性： Windows系统默认的最大路径长度为260个字符（包括盘符、文件夹名、文件名及分隔符\）。如果文件或文件夹的完整路径超过此限制，系统工具（如资源管理器）可能无法正常操作。 一时间确实有点难绷，这种古老的问题能存续到现在也是神奇。最后索性启动Manjaro Linux，干净利落删除了这个文件。 后面和朋友讨论时，他提出了个更简单的操作方法：使用WSL的终端操作磁盘上的文件。确实可行，连重启切系统的功夫都不用了。

《应用密码学与网络安全》知识总结
type: item
date: 2023-07-14T09:37:54+08:00
description: 第一讲 引言 网络安全核心地位的关键目标 保密性（Confidentiality） 数据保密性 隐私性 完整性（Integrity）(包括不可否认性、真实性) 数据完整性 系统完整性 可用性（Availability） 真实性（Authenticity） 可追溯性（Accountability） 安全攻击 被动攻击 在未经用户同意和认可的情况下将信息或数据文件泄露给系统攻击者，但对数据信息不做任何修改 常见手段 搭线监听 无线截获 其他截获 应对措施：重点在于预防 主动攻击 涉及某些数据流的篡改或虚假流的产生 分类 阻断攻击 伪造攻击 重放攻击 篡改攻击 拒绝服务攻击 应对措施 自动审计 入侵检测 完整性恢复 安全机制 安全机制要具备检测、防御或从安全攻击中恢复的能力，没有单一的机制能够提供所有的安全服务 特定的安全机制（specific security mechanisms） 加密， 数字签名， 访问控制，数据完整性，认证交换，流量填充，路由控制，公证等 普遍的安全机制（pervasive security mechanisms） 可信功能，安全标签，事件检测，安全审计跟踪，安全恢复 安全服务 可认证性 Authentication 访问控制 Access Control 机密性 Confidentiality 完整性 Integrity 不可否认性 Non-repudiation 可用性 Availability 第二讲 传统加密技术 密码学 密码编码学 研究内容：主要研究对信息进行编码，实现对信息的隐蔽 特征 密码编码学常用运算：代替与置换 所用的密钥数：单钥与双钥 处理明文的方法：分组密码与流密码 密码分析学 研究内容：主要研究如何破解密文的方法 攻击的两种常用方法 密码分析学： cryptanalytic attack 穷举攻击： brute-force attack 保护密码算法还是密钥 与维护算法的保密性相比，维护密钥的保密性更容易。 万一密钥暴露了，Alice 和 Bob 可以很容易地更换密钥；而万一算法被攻破，重新设计一个很好的加密算法要难得多。 万一有多对人员需要加密其通信，这些人可以使用相同的算法和不同的密钥，而使用不同的程序则太难。 加密算法 凯撒密码：共有密钥25个、移位、替换 单表代替密码：任意地打乱字母的顺序，密钥数目： 26！＞ 4 × 10^{26} playfair 密码：多字母代替密码，密钥空间：25！≈1.6×10^{25} Hill 密码 加密：C≡KP mod 26，其中，K为密钥矩阵，P、C分别为明、密文分组 解密：P≡K^{-1}C mod 26 维吉尼亚密码 置换密码 第三讲 分组密码与 DES Feistel 密码结构 混淆和扩散 混淆：使得密文的统计特性与密钥的取值之间的关系尽量复杂 扩散：明文的统计特征消散在密文中，使得明文和密文之间的统计关系尽量复杂 DES 加解密 两次置换（初始置换和初始逆置换） 密钥控制下的十六轮迭代加密 轮密钥生成 DES 是一种用 56 位密钥来加密 64 位数据的方法 雪崩效应 明文或者密钥的某一位发生变化，会导致密文很多位的变化 第四讲 代数基础 模运算性质 对称 传递 计算2^{64} mod 2012 \begin{flalign*} &2^2 =4 mod 2012\\ &2^4 =16 mod 2012\\ &2^8 =256 mod 2012\\ &2^{16}=65536 ≡1152 mod 2012\\ &2^{32}=1152^2 ≡1196 mod 2012\\ &2^{64}=1196^2 ≡1896 mod 2012& \end{flalign*} 欧几里得算法（辗转相除法） 求gcd(1970, 1066) \begin{flalign*} &令a=1970，b=1066\\ &1970=1×1066+904\\ &1066=1×904+162\\ &904=5×162+94 \\ &…… …… \\ &10=1×6+4\\ &6=1×4+2\\ &4=2×2\\ &因此gcd(1970, 1066)=2 & \end{flalign*} 求乘法逆元 已知28与81互素，求81 mod 28的逆元。 \begin{flalign*} &81=2×28+25\\ &28=1×25+3\\ &25=8×3+1\\ \\ &1=25-8×3\\ & =25-8×(28-25)\\ & =(-8)×28+9×(81-2×28)\\ & =9×81+(-26)×28\\ &所以81×9≡1 mod 28，同时 28×（－26）≡1 mod 81, 81 mod 28的逆元为9\\ &而28 mod 81的逆元为－26≡55&…

《分布式计算》总结
type: item
date: 2023-06-11T17:53:00+08:00
description: 一、 分布式计算概述 1. 分布式系统定义 分布式系统是由一组通过网络进行通信，为了完成共同的任务而协调工作的计算机节点组成的系统 1.1 消息传递模型（Shared-Nothing） 节点之间通过消息传递进行通信 内部运算速度快，但通信速度慢 1.2 分布式计算与并行计算 分布式计算是并行计算的一种特殊形式 并行计算 指令并行 CPU多核并行：多线程编程 多CPU并行（一致性内存共享）：多进程编程 多CPU并行（非一致性内存共享）：分布式计算 基于GPU的并行计算 多机并行计算 1.3 分布式与云计算 云计算 用户角度：是一种服务/应用/交付模式，方便用户随时随地通过网络访问应用程序、存储数据，不是一种技术 与分布式计算的关系 云计算是目标，分布式计算是手段 分布式计算是实现云计算的核心技术之一（还有虚拟化技术，网络通信技术，安全技术等） 2. 构建分布式系统的收益 提高计算能力 提高存储能力 提高网络吞吐能力 提高可靠性 提高可扩展性 提高安全性 实现资源共享 实现跨时空协同服务 3. 分布式系统衡量指标 业务层性能 时间复杂度 空间复杂度 通信复杂度 可扩展性：系统能够适应业务量的增长 容错性：系统在部分节点失效时，仍能正常工作 并发性：系统能同时处理多个请求 透明性：用户感知不到系统的分布式特性 开放性：节点可以动态加入或退出系统 安全性：系统能抵御各种攻击 可观测/可维护性：系统能够监控自身的运行状态，及时发现故障并修复 简记：扩容，容错，并发，透明，开放，安全，可观测 4. 设计分布式系统的挑战 与性能衡量指标 类似 5. 分布式计算任务的分类 5.1 OLTP（联机事务处理） 实时处理大量的短小的事务请求，每个事务请求的处理时间很短，通常是几毫秒到几秒钟 5.2 OLAP（联机分析处理） 对大量的历史数据进行分析，通常是对大量数据进行聚合计算，每个计算任务的处理时间很长，通常是几分钟到几小时 5.3 流式计算 对大量的实时数据进行分析，通常是对数据进行过滤、聚合、统计等操作，每个计算任务的处理时间很短，通常是几毫秒到几秒钟 6. 分布式系统架构模式 6.1 客户端-服务器模式 负载均衡技术 如何架构 通过DNS轮询 通过反向代理 通过负载均衡器 带来的收益 提高系统的可扩展性，弹性增减节点 提高系统的可靠性 提高系统的性能 常用的负载均衡算法及优劣 轮询：简单，均衡，但不考虑节点的负载情况 随机：简单，均衡，但不考虑节点的负载情况 最少连接：考虑节点的负载情况，但不考虑节点的性能 最少响应时间：考虑节点的负载情况，考虑节点的性能，但不考虑节点的可用性 哈希：考虑节点的负载情况，考虑节点的性能，考虑节点的可用性，但不支持动态增减节点 一致性哈希：考虑节点的负载情况，考虑节点的性能，考虑节点的可用性，支持动态增减节点 6.2 主从模式 主从模式的概念 主节点 负责处理客户端的请求，维护系统的状态 从节点 负责处理主节点分配的任务，不维护系统的状态 主从模式的优缺点 优点 提高系统的可扩展性 提高系统的可靠性 提高系统的性能 缺点 主节点成为瓶颈 从节点的状态不一致 6.3 总线模式 总线模式的概念 不同节点通过总线进行通信 消息发送与接受者解耦 异步 分工 6.4 对等模式 对等模式的概念 系统中的所有计算节点任务分工都是对等的 完全相同的软件在不同的节点上运行，只是初始化参数不同 对等模式的优缺点 优点 不会出现单点故障 无需维护系统的状态 缺点 效率低 7. 分布式中间件的概念 7.1 中间件在计算机系统中的位置 中间件是介于操作系统和应用程序之间的软件，它为应用程序提供服务，为操作系统提供接口 7.2 中间件的作用 为开发者提供高层的抽象接口 提高互操作性和可移植性 提供分布式系统的基础设施 7.3 中间件的基本表现形式 独立的后台进程 语言编译/解释器的一部分 函数库 二、分布式系统节点通信技术 1. 基于Socket的通信技术 1.1 Socket的概念 Socket是一种通信机制，它允许不同节点上的应用程序通过网络进行通信 是传输层和网络层提供给应用层的接口 1.2 基于流式Socket（TCP） 建立连接（三次握手） 客户端向服务器发送连接请求 服务器向客户端发送连接确认 客户端向服务器发送连接确认 发送请求 客户端向服务器发送请求 返回响应 服务器向客户端发送响应 关闭连接 1.3 基于数据报Socket（UDP） 发送请求 客户端向服务器发送请求 返回响应 服务器向客户端发送响应 与TCP的区别：没有建立连接的过程，不可靠，不保证数据的顺序 1.4 并发服务技术 多线程——线程池 优点：线程复用，减少线程创建和销毁的开销 多路复用（事件驱动技术） 优点：单线程，减少线程切换的开销，适用于并发连接数少…

《星空》
type: item
date: 2023-06-09T16:16:00+08:00
description: 摸不到的颜色 是否叫彩虹 看不到的拥抱 是否叫做微风 一个人 想着一个人 是否就叫寂寞 命运偷走如果 只留下结果 时间偷走初衷 只留下了苦衷 你来过 然后你走后 只留下星空 那一年我们望着星空 有那么多的灿烂的梦 以为快乐会永久 像不变星空 陪着我 猎户 天狼 织女光年外沉默 回忆 青春 梦想何时偷偷陨落 我爱过 然后我沉默 人海里漂流 那一年我们望着星空 未来的未来从没想过 当故事失去美梦 美梦失去线索 而我们失去联络 这一片无言无语星空 为什么静静看我泪流 如果你在的时候 会不会伸手 拥抱我 细数繁星闪烁 细数此生奔波 原来所有 所得 所获 不如一夜的星空 空气中的温柔 回忆你的笑容 彷佛只要伸手 就能触摸 摸不到的颜色 是否叫彩虹 看不到的拥抱 是否叫做微风 一个人 习惯一个人 这一刻独自望着星空 从前的从前从没变过 寂寞可以是忍受 也可以是享受 享受仅有的拥有 那一年我们望着星空 有那么多的灿烂的梦 至少回忆会永久 像不变星空 陪着我 最后只剩下星空 像不变回忆 陪着我

智锐配镜经历
type: item
date: 2023-03-04T15:18:00+08:00
description: 1. 验光 网配智锐除了基本度数和散光数据，还需要测瞳宽瞳高以及倾斜角，倾斜角需要佩戴镜框去使用专门的机器进行测量。我个人是先在网上购买了镜框，然后去西安一家有蔡司VTS1000设备的眼镜店（地址：西安MOMOPARK写字楼14楼-1403室）验光，其实店里的镜框其实也挺便宜，和网上差的不多，也推荐在店里选购，还能自己去试戴。 2. 网配 这一步比较胡来，在闲鱼上找了一家看起来销售量挺大的店家（江苏盐城），报价够便宜就下单了。将验光单和瞳高倾斜角年龄这些数据发给他，再将眼镜架寄给他所提供的地址（2.20店家签收）。 后续我大概等待了快两周，收到店家发来的快递，里面包含这些东西： 眼镜 两个蔡司镜片袋 智锐青春亚洲版优化光度单（打印时间为2.24） 卡尔蔡司光学（广州）发货单（打印时间为2.24） 看起来店家应该是将镜片镜框邮寄到广州进行加工，再寄回盐城，最后再寄给顾客。 蔡司定制片盾形防伪标识 镜片袋防伪码 3. 体验 新镜片还在适应中，其实也没有那种一眼惊艳，毕竟只是个眼镜。 体验比较明显的是视野好像变大了。智锐说是对视野进行了优化，看远景给人一种超广角的感觉（还有种地狱可能性是度数配高了，凹透镜把东西拉远了），现在还在适应中...... 其次是有些偏黄，没防蓝光镜片那么夸张，但是能感知到。