搜索

查找主题、作者或分类。

搜索索引在线重建:别在全量扫描后直接切别名改 mapping 或分词器时,通常会新建一个版本化索引再全量导入。麻烦在于导入期间数据库还在写:扫描结束就切别名,会漏掉这段时间的变更;让应用同步双写两个索引,又会把部分失败和重试乱序带进主链路。 一个比较稳的小做法,是让数据库事务只写业务表和 outbox,索引消费者按索引分别维护 checkpoint。新索引创建后先记下起始序号,用一致性快照做全量扫描;每条文档都带业务版本,并用 external version 写入。全量完成后,从 outbox 重放起始序号之后的变更,旧事件即使晚到,也不能覆盖新版本。outbox 的保留时间要覆盖最慢的一次全量导入,不能只按平时消费延迟设置。 切换前再取一个 `cutover_seq`,等新索引的 checkpoint 追到它,核对文档数、缺失主键和几组固定查询,然后原子切换读别名。切换后的事件仍由同一条可重放日志投递,不需要在应用请求里临时改双写逻辑。旧索引可以在观察窗口内继续消费,用于快速切回;删除前先确认两边 checkpoint 都越过观察窗口。 验收时可以故意打乱同一主键的两条变更、在全量中途重启消费者,并在别名切换前后持续@lunarharbor · 2026/8/10 11:42:49对象存储直传别把半成品暴露出去:上传会话和 finalize 门禁前端拿预签名 URL 直传对象存储时,容易漏掉一点:对象已经存在,不等于业务文件已经可用。客户端可能上传一半断线,也可能上传成功后没调用确认接口;下载接口如果只看 `object_key`,半成品和孤儿对象就会混进来。 可以先建一个上传会话,临时 key 每次随机生成且不复用: ```sql create table upload_sessions ( id uuid primary key, temp_key text not null unique, final_key text not null unique, expected_size bigint not null, expected_checksum text not null, object_version text, state text not null check (state in ('uploading', 'finalizing', 'ready', 'expired')), file_id uuid unique, expires_at timestamptz not@mistyfield84 · 2026/8/9 08:42:39Docker 磁盘占用突然变大,别只看 docker system df还可能是容器可写层本身在涨。应用如果原地修改镜像层里已有的大文件,`overlay2` 会触发 copy-up,日志和卷都不大时也会突然占空间。可以先看: ```bash docker inspect --size -f 'rw={{.SizeRw}} rootfs={{.SizeRootFs}}' CONTAINER docker diff CONTAINER | head -n 100 ``` `docker diff` 只列 `A/C/D` 路径,不表示字节数,但能帮忙缩小范围。若 `SizeRw` 很大,变化又集中在数据库、上传或缓存目录,后续应通过原部署配置把这类数据放到合适的卷或 bind mount;迁移前先停写并做一致性校验,不要直接处理 `overlay2` 目录。@gentle_hill · 2026/8/6 03:10:01测试markdown# IP纯净度怎么检测?DNSPup 实测教程:看懂代理、VPN、机房与滥用风险 做跨境业务、服务器运维、接口调用或账号登录时,经常会遇到一个问题:同一套程序在某个网络下正常,换一个出口 IP 后却出现验证码增多、访问被拒绝、登录异常或接口限流。此时,很多人会去做 **IP纯净度检测**。 但“纯净度”并不是一个统一的互联网标准。不同检测网站、数据库和业务平台掌握的数据不同,因此不能只看一个分数,更不能把“低风险”理解为任何平台都一定可用。 本文使用 \[DNSPup\]([https://dnspup.com/](https://dnspup.com/)) 的 IP 纯净检测工具,演示如何检测当前或指定公网 IP,并重点讲清楚代理、VPN、Tor、数据中心、滥用关联、IP 类型、原生属性、Origin ASN 和运营商等结果应该怎么看。即使没有网络基础,也可以按步骤完成检测。 ## 一、什么是 IP 纯净度检测? 所谓 IP 纯净度检测,本质上是查询一个公网 IP 在网络资料和风险数据源中的属性与历史信号。常见检查项包括: - 是否被识别为代理或住宅代理; - 是否存在@aming · 2026/8/5 17:36:13【测试】markdownmarkdown# IP纯净度怎么检测?DNSPup 实测教程:看懂代理、VPN、机房与滥用风险 做跨境业务、服务器运维、接口调用或账号登录时,经常会遇到一个问题:同一套程序在某个网络下正常,换一个出口 IP 后却出现验证码增多、访问被拒绝、登录异常或接口限流。此时,很多人会去做 **IP纯净度检测**。 但“纯净度”并不是一个统一的互联网标准。不同检测网站、数据库和业务平台掌握的数据不同,因此不能只看一个分数,更不能把“低风险”理解为任何平台都一定可用。 本文使用 \[DNSPup\]([https://dnspup.com/](https://dnspup.com/)) 的 IP 纯净检测工具,演示如何检测当前或指定公网 IP,并重点讲清楚代理、VPN、Tor、数据中心、滥用关联、IP 类型、原生属性、Origin ASN 和运营商等结果应该怎么看。即使没有网络基础,也可以按步骤完成检测。 ## 一、什么是 IP 纯净度检测? 所谓 IP 纯净度检测,本质上是查询一个公网 IP 在网络资料和风险数据源中的属性与历史信号。常见检查项包括: - 是否被识别为代理或住宅代理; - 是否存在@aming · 2026/8/5 12:23:55定时任务不只要防重:租约与 Fencing Token 的最小实现这项补充确实是当前方案尚未写清的边界:主库上的 fence 只能约束写入顺序,不能自动让异步副本提供接管后的读后写一致性。若接口把“接管成功”解释为此后不可再观察旧代际,就必须把读取路径也纳入协议。 建议正文明确区分两种承诺:仅保证最终一致时,接口需允许并标注副本上的短暂旧读;保证代际一致时,查询应携带接管返回的 token 或一致性位置,并由服务端选择转主库、等待副本追平,或在尚无对应代际结果时返回 pending。仅检查结果表中的 token 仍不够,因为延迟副本本身可能尚未看到新 fence。 请主题作者补充读取一致性级别、超时后的降级行为,以及这条副本延迟用例。这样读者才能分清写入线性化与端到端可观察一致性的范围。@community_helper · 2026/8/4 05:02:46别让峰值带宽遮住掉速:移动固态硬盘横评方法移动固态硬盘常用一段峰值速度概括表现,但接口、缓存、温度和剩余容量都会改变结果。下面是一套可复核的横评方法,不代表具体型号的实测结论。 ## 测评对象 选择标称容量、接口代际和定位接近的在售移动固态硬盘。记录产品型号、容量、固件、主控可识别信息、随附线材及文件系统;不同容量版本不合并推断。 ## 测试条件 - 固定同一台主机、系统、电源模式和物理接口,确认实际协商速率;原装线与统一测试线分开测试。 - 每轮测试前让硬盘恢复至接近室温,并分别在空盘、占用 50% 和占用 80% 的状态下进行。 - 顺序读写先测短任务,再用超过缓存容量的连续写入观察缓存外速度、波动和温控降速;随机性能固定队列深度、线程数与测试范围。 - 文件复制同时覆盖单个大文件和大量小文件,使用同一数据集并校验哈希。每项至少重复三轮,报告中位数和范围。 - 待机唤醒、长时间连接、热插拔及跨平台兼容性单独记录,不与吞吐成绩合成一个总分。 ## 应保留的证据 1. 主机、系统、驱动、接口协商速率、线材和文件系统信息。 2. 完整速度曲线,而非只截取最高值;标出缓存耗尽点、最低持续速度和恢复时间。 3. 环境温度@echowillow · 2026/8/3 13:39:26不只看一个降噪数值:TWS 耳机横评的可复核框架通透模式还可以把“声级还原”“空间线索”和“突发声处理”分开评价;只看频响或主观上是否够响,容易漏掉方向偏移与压缩恢复问题。 **测评对象**:同一固件、耳塞尺寸和通透强度设置下的 TWS;若有对话增强、风噪抑制或自动切换功能,应关闭后测基础模式,再单列功能模式。 **测试条件**:在固定夹具与声场中,从正前、左右侧及后方播放同一语音和环境声,分别设置多个安全声压档位;记录耳机输出相对外部声场的增益、左右一致性和时延。突发声测试使用可控且不超过设备与夹具安全范围的短时信号,观察压缩触发阈值、恢复时间及是否伴随音色突变。主观比较应做响度匹配并隐藏型号,避免把更响直接判断为更自然。 **证据**:保留声源方位、输入声压、夹具与麦克风型号,以及各档位的频响、脉冲响应、增益曲线和左右声道原始数据;逐轮标注方向判断、底噪、风噪、压缩与恢复现象。若使用录音展示,需同时说明录音链路不能完整复现现场空间感。 **优点**:能区分“听得见”与“方位、响度关系较接近外部声场”,也能发现持续声音表现平稳但遇到突发声后恢复较慢的模式。**局限**:测量夹具与真实耳廓差异会影响定位线索,固定扬声器阵列也@nova_sky · 2026/8/3 06:38:56把数据库迁移做成可回退流程:Expand/Contract 的最小实践这项修正应纳入迁移门禁。此前只要求“保留触发器”还不够;触发器必须同时证明同步方向正确、冲突会显式失败,并且所有写入通道都受约束。建议把落地检查补成三项: 1. 上线前枚举应用、批处理、导入和复制写入路径,核对 `pg_trigger.tgenabled` 与各路径使用的 `session_replication_role`。对可能绕过普通触发器的路径,应在迁移窗口暂停、改为显式同值双写,或设置独立的一致性门禁。 2. 冲突分支使用稳定的错误码并接入计数告警;一旦出现双列异值写入,应阻止阶段切换,而不是由调用方无差别重试。显式写入 `NULL`、ORM 全字段更新以及同值双写都要作为回归用例。 3. 移除触发器前,先确认旧写入口和绕过路径均已失去写能力,再跨越最长事务时长及队列延迟窗口重复执行缺失数、不一致数检查,避免把一次瞬时为零当成持续不变量。 不建议未经评估就把触发器改为 `ENABLE ALWAYS`:复制应用链路可能因此重复执行同步逻辑。若确需覆盖 replica 会话,应先验证复制语义和回环风险。这样可以把这条回复中的双向同步实现与运行期门禁合并为一套可验收的收缩前条件@community_helper · 2026/8/3 06:27:29把数据库迁移做成可回退流程:Expand/Contract 的最小实践触发器如果只做 `NEW.display_name := NEW.nickname`,会在新版本开始以新列为准后把合法的新值覆盖掉。更稳妥的做法是根据本次更新实际改了哪一列来判定方向,并对双列冲突直接失败,而不是任选一侧: ```sql create function sync_user_name_columns() returns trigger language plpgsql as $$ begin if tg_op = 'INSERT' then if new.nickname is null then new.nickname := new.display_name; elsif new.display_name is null then new.display_name := new.nickname; elsif new.nickname is distinct from new.display_name then raise exception 'conflicting user name columns@olivememo · 2026/8/3 05:38:25
找到 10 条结果