XDB's Blog

在不修改数据库的前提下使用 ABP Domain 架构的实践方案

在对老系统进行升级或重构时,数据库结构尽量不变往往是最重要、也最现实的约束之一。而当我们选择 ABP 框架时,很快就会遇到一个典型问题: ABP 的 AggregateRoot 默认包含 ExtraProperties 和 ConcurrencyStamp,但老系统的表中并没有这些字段。 本文将结合实际升级经验,介绍如何在不修改数据库表结构的前提下,依然优雅地使用 ABP 的 D...

根据 Shop No 批量变更合作伙伴并记录变更日志(my Sql 实战)

背景 在实际业务中,经常会遇到这样的需求: 一个合作伙伴(Partner)可能关联多个店铺(Shop) 由于业务调整,需要根据 shopNo 批量变更店铺所属的合作伙伴 同时要求完整记录变更历史,用于审计、回溯或问题排查 本文通过一个完整的 MySQL 实战示例,演示如何: 根据 shopNo 批量更新 supplier_PartnerShopRls 中的 Pa...

服务器交接前 Docker login / logout 的安全总结

在服务器上部署应用时,我们经常需要通过 docker login 登录私有镜像仓库来拉取镜像。当服务器后续需要转交给他人时,一个常见且重要的问题是:Docker 登录过的账号是否会导致密码或权限泄露? 本文对这个问题做一个清晰、可直接落地的总结,适合用于生产环境和服务器交接场景。 一、docker login 会在服务器上保存什么? 执行 docker login 后,Docker...

ASP.NET Core + ABP 使用 Redis 的最佳实践:连接复用、缓存、Data Protection 密钥共享与分布式锁完整配置示例

在实际生产环境中,Redis 不仅用于缓存,还经常承担连接复用、Session/Cookie 加解密密钥共享(Data Protection)、分布式锁等核心职责。本文记录了我最终采用的一套完整 Redis 配置方案,并总结了优化过程中的关键点,供团队及他人参考。 🧱 一、为什么要优化 Redis 配置? 在微服务或多实例部署场景中,Redis 通常承担以下职责: 1. 作为应用缓...

在局域网中使用 Windows V2rayN 代理,让 CentOS Docker 顺利访问 Docker Hub

在国内或公司受限网络环境中,有时 Docker 容器无法直接访问 Docker Hub,导致拉取镜像失败。本文总结了如何通过 Windows 上的 V2rayN 代理,让局域网内的 CentOS 主机上的 Docker 守护进程顺利拉取镜像,并解决相关网络问题。 1. 问题背景 场景: Windows 上运行 V2rayN,用于访问外网。 CentOS 服务器(如 192...

雪花算法升级实践:从 Snowflake 到 SnowflakeV2,确保 ID 增长不溢出

一、问题背景:默认起始时间导致的潜在风险 雪花算法(Snowflake)是一种常见的分布式 ID 生成方案。它通过将 64 位的 long 型整数拆分为不同字段(时间戳、机器 ID、序列号),在高并发分布式环境中生成全局唯一且有序的 ID。 由于 使用NewLife未设置开始时间,默认使用1970作为纪元时间,并已经产生很多数据 ,导致无法直接在改动NewLife的纪元时间,到达延长雪花...

ASP.NET Core 实现带签名的安全导出下载(支持复杂 JSON 参数)

在日常后台系统中,“导出数据”几乎是标配功能之一。 然而随着导出逻辑越来越复杂,比如筛选条件、时间区间、分页参数、字段选择等,传统的“前端 POST 请求 + Blob 下载”方式就开始显得笨重。 本文将带你一步步实现一个高安全性、可扩展、支持复杂 JSON 参数的导出下载机制, 并且可以实现“点击即下载”的顺畅体验。 🧩 一、常见导出方式的问题 1️⃣ 直接返回文件流(Blob)...