一篇基于AWS服务搭建的全球服务架构
一、背景 当我们在做全球业务时,例如网站/机器/游戏,为了支撑全球用户,我们会在不同的位置搭建节点,以满足业务功能和响应实效。 我们会搭建一个这样的架构满足初步的使用。 能用是ok的了,会有什么问题呢? 1、因为服务独立,上架1个SKU需要多次发布到不同的服务。 2、因为域名过多,发布时需要频繁的退 ...
高并发下如何防止商品超卖?
前言 "快看我们的秒杀系统!库存显示-500了!" 3年前的这个电话让我记忆犹新。 当时某电商大促,我们自认为完美的分布式架构,在0点整瞬间被击穿。 数据库连接池耗尽,库存表出现负数,客服电话被打爆... 今天这篇文章跟大家一起聊聊商品超卖的问题,希望对你会有所帮助。 1 为什么会发生超卖? 首先我 ...
GitFlow
GitFlow是一种成熟的Git分支管理策略,包含五大核心分支:Master(生产代码)、Develop(开发集成)、Feature(功能开发)、Release(版本发布)和Hotfix(紧急修复)。详细介绍了各分支职责、命名规范、工作流程示例、Git回退操作、Stash暂存、Cherry-Pick... ...
什么是 RESTful API?凭什么能流行 20 多年?
你是小阿巴,刚入职的后端程序员,负责给前端的阿花提供 API 接口。结果一周后,你被阿花揍得鼻青脸肿。
阿花:你是我这辈子见过接口写的最烂的程序员!
你:接口不是能跑就行吗? ...
选框架选到头秃?别让“技术赌博”毁了你的项目
面对复杂的技术栈选择,单纯靠经验容易陷入误区。本文提供了一套“技术选型分析 AI 指令”,将 AI 化身为 15 年经验的架构师,通过多维度加权评分和风险评估,帮助技术决策者做出客观、数据驱动的架构决策,避免为错误的选型买单。 ...
别再让你的 Python 傻等了:三分钟带你通过 asyncio 实现性能起飞
1. 痛点场景:你是在“单线程”思考吗? 想象你正在开发一个爬虫程序,需要下载 100 张高清图片。 如果你用传统的 requests 库,代码逻辑通常是这样的: 发起请求 A -> 等待网络响应(500ms) -> 保存图片 A。 发起请求 B -> 等待网络响应(500ms) -> 保存图片 B ...
STM32F4xxx系列 - DAC生成噪声波
目标:利用定时器5(周期为5ms),从DAC1通道产生一个噪声波。 涉及知识:DAC原理、stm32中的DAC、定时器、DAC输出IO配置 1. DAC原理 DAC,是将数字输入转换成模拟输出,主要有两种实现方式: 电阻-电位器网络 :通过开关控制不同的电阻分压,生成对应的模拟电压。 电容-二进制加 ...
Flask页面跳转实战指南:五种方式与不同应用场景下的最佳选择
Flask页面跳转是Web开发中的基础但关键技能,本文系统讲解了五种常用跳转方式:后端redirect、前端a标签、form表单提交、JS fetch API交互,并重点对比了后端redirect与前端window.location.href的区别与适用场景。通过实际代码示例帮助开发者根据具体需求选... ...
APEX实战第8篇:ORDS连库报错574?一招根治用户过期问题
作为 APEX 应用开发工程师,笔者发现很多同行在使用 APEX + ORDS 架构时,都会遇到数据库凭证错误相关的问题。之前大家普遍知道 APEX_PUBLIC_USER 需要设置密码永不过期,但往往会忽略另一个关键用户——ORDS_PUBLIC_USER,这也是导致 Database Crede ...
【译】在 Visual Studio 2026 中,减少升级时间,增加编码时间
过去,升级到 Visual Studio 的下一个主要版本时,要按照自己喜欢的方式重新配置开发环境可能需要数小时,有时甚至数天。Visual Studio 2026 让用户能比以往更轻松地使用最新的生产力功能、性能改进和安全修复,而不会中断工作流程。借助全新的 Visual Studio 安装体验, ...
【EF Core】将一个实体映射到多个表的正确方法
把一个实体类型映射到多个表,官方叫法是 Entity splitting,这个称呼有点难搞,要是翻译为“实体拆分”或“拆分实体”,你第一感觉会不会认为是把一个表拆分为多个实体的意思。可它的含义是正好相反。为了避免大伙伴们产生误解,老周直接叫它“一个实体映射到多个表”,虽然不言简,但很意赅。 把一个实 ...
LaTeX学习笔记:开场白与索引
title: LaTeX学习笔记:开场白与索引 date: 2025-10-31 author: 凌杰 tags: 技术写作 categories: 标记语言 开场白 从这里开始,我将会陆续记录自己在学习 \(\LaTeX\) 语言过程中所累积的心得体会,目的是帮助自己和读者更好地掌握基于这门语言( ...
【面试题】MySQL B+树索引高度计算
MySQL B+树索引高度计算与性能阈值探讨 一、MySQL B+树索引高度计算 MySQL中InnoDB的主键索引采用B+树结构,索引高度(树的层数)决定了查询时磁盘IO的次数(高度=IO次数),核心计算逻辑围绕B+树的节点容量和数据行数展开。 1. 核心前提(InnoDB默认配置) 页大小:默认 ...
专注之道,先立根基而后致远
目录本文提要正文我的专注实操 本文提要 正文 很多人都将“心无旁骛,万事可成”奉为准则,把专注完全归因于愿力的驱动,认为仅凭一腔热忱就能凝神聚力、一往无前。但我认为,这种观点不够全面,甚至带有些许“鸡汤式”的静态思维。专注从来不是孤注一掷的偏执,更不是脱离现实的空想,它需要以人生定位为罗盘,以自我准 ...
使用Java Stream,将集合转换为一对一Map
在日常的开发工作中,我们经常使用到Java Stream,特别是Stream API中提供的Collectors.toList()收集器, 但有些场景下,我们需要将集合转换为Map,这时候就需要使用到Stream API中提供的另一个收集器: Collectors.toMap,它可以将流中的元素映射 ...
群晖通过 acme.sh 申请 ZeroSSL 泛域名证书(适配 80 端口封锁)+ 自动续期同步完整步骤
说明 适配场景:运营商封锁 80 端口,无法通过 HTTP-01 验证申请证书 证书类型:泛域名 SSL 证书(xjunqiang.cn + *.xjunqiang.cn),有效期 90 天 核心保障:自动续期 + 自动同步到指定证书目录,永久有效 一、前置准备 群晖开启 SSH 并登录,切换 ro ...
Net如何优雅的实现发送邮件服务
使用.NET内置的SmtpClient类 在.NET中,可以通过System.Net.Mail命名空间下的SmtpClient类发送邮件。需要配置SMTP服务器地址、端口、凭据等信息。 具体实现可参考NetCoreKevin的Kevin.Email模块 基于.NET构建的企业级SaaS智能应用架构, ...
Web攻防-Fuzz模糊测试篇&JS算法口令&隐藏参数&盲Payload&未知文件目录
知识点: 1、Fuzz技术-用户口令-常规&模块&JS插件 2、Fuzz技术-目录文件-目录探针&文件探针 3、Fuzz技术-未知参数名-文件参数&隐藏参数 4、Fuzz技术-构造参数值-漏洞攻击恶意Payload Fuzz:是一种基于黑盒的自动化软件模糊测试技术,简单的说一种懒惰且暴力的技术融合了 ...
吴恩达深度学习课程四:计算机视觉 第三周:检测算法 课后习题和代码实践
此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下: 原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案:吴恩达深度学习课后习题与答案 本篇为第四课第三周的课后习题和代码实践 ...
从 jQuery → V/R → Lit:前端架构的 15 年轮回
前端这十几年的发展,看起来是“日新月异”, 但如果把时间线拉长,会发现一件很有意思的事: 我们其实在不断“绕一大圈”, 最后又慢慢回到了浏览器本身。 这篇文章不讲 API、不讲语法, 只讲一件事: 前端架构思想是如何演进的? Lit / Web Components 处在什么位置? 一、什么叫轮回? ...


