自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 混沌工程基本原理

有一天服务宕机,导致部分国家的不可用长达1天时间,于是他们决定将服务器迁移到AWS上,做了多节点分布式部署,同时增加对服务可用性、容错性、健壮性的实验,而这套实验方法就是混沌工程的前身。-- 来自Deepseek。而就在这个时候,2014年Netflix宣布新增一个叫混沌工程师的职位,代表Netflix将混沌工程融入了自己的运维过程,这也直接激起了混沌工程的热度。简单来说,就像给系统“打疫苗”,通过模拟各种可能的“疾病”(故障),让系统提前适应并增强抵御风险的能力,减少实际运行中突发故障造成的损失。

2025-12-22 17:17:00 278

原创 K8s Service会话保持导致Pod流量不均:故障排查与深度解析

当配置为sessionAffinity: ClientIP时,Kubernetes会基于客户端的IP地址进行会话保持,来自同一IP的请求在会话保持的超时时间窗口内会被持续转发到同一个后端Pod。最近,我们就遭遇了这样一次故障:某个服务的多个Pod实例流量分配严重不均,部分Pod负载极高,而其他Pod几乎处于空闲状态。故障得以解决,但探究其背后原理至关重要。正确处理Session Affinity配置,结合适当的监控和告警机制,能够让你的Kubernetes集群运行更加稳定高效,真正发挥云原生架构的优势。

2025-12-22 17:16:19 912

原创 【URP】Unity中Mipmap Streaming原理与实现

若总纹理内存超限,自动降低非关键纹理的 Mip 层级(如将 MipLevelideal 强制偏移 +1)。Unity 的纹理金字塔(Mipmap 层级)是‌基于纹理资源本身维护的‌,而非每个物体单独维护。‌纹理导入设置‌:勾选 Generate Mip Maps 和 Streaming Mipmaps,设置 Mip Map Priority(优先级越高越早加载)。Unity 的 Mipmap Streaming 系统仅加载当前需要的层级(如 Mip 4-6),其他层级保留在磁盘或按需异步加载。

2025-12-21 14:22:56 420

原创 日常问题排查-Younggc突然变长

反而在每次循环的循环体中,通过batchNo从数据库中捞取的数据在处理完之后就没用了,younggc的时候自然消亡,完全不参与相关younggc运算。由于younggc耗时高集中在几台机器上,于是笔者登陆上那几台机器,发现在younggc耗时变高的时候都出现了nr_throttled,也就是当前容器的CPU时间片消耗达到了配置的cgroup上限,导致被kernel强制offline了。比较了相关的业务日志,笔者敏锐的发现了一个不一样的地方。看着这微小的改动引起了这么大的变化,这是不可能的。

2025-12-21 14:22:17 354

原创 深入理解Golang并发模型与CSP理论

通信顺序进程(Communicating Sequential Process,CSP)是 Tony Hoare 在 1978 年提出的一种描述并发系统交互的模式,它正是Golang并发模型的灵感源泉。该模型的另一显著特征是,消息的发送与接收是异步进行的。CSP模型的关键特性是,进程的执行不会受到其他进程的直接影响,进程间的交互仅通过通道发送和接收消息来实现。Golang通过轻量级的Goroutine和通信机制Channel,实现了CSP模型的核心思想,即通过消息传递而非共享内存实现并发控制。

2025-12-18 21:11:35 294

原创 夜莺监控设计思考(一)整体定位、架构设计、单进程多进程选择、高可用设计

本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。

2025-12-18 21:10:57 317

原创 LLM应用剖析: 热点新闻助手TrendRadar

(2) 定时爬虫: 基于Github Actions部署,默认每小时执行一次爬虫,具体可以参考.github/workflows/crawler.yml中的配置,爬取的数据保存在本地output。花了近三天时间,深入研究了Github近几天一直霸榜的热门项目TrendRadar,星标已达30K+,与先前的开源项目微舆,成为11月份github的趋势榜国产双雄。(1) 数据源: 和微舆一样,是基于开源项目newsnow的35+个新闻及资讯网站的榜单获取,包括抖音、头条、微博、贴吧、知乎等。

2025-12-17 18:53:29 685

原创 Visual Studio 十月更新 —— 新模型、记忆功能、计划功能及更多内容

有了指令文件,您现在可以将特定指令定向到仓库中的特定文件夹或文件,使 Copilot 真正了解项目,并且在不同会话中保持一致性。为了让 Copilot 能有效地为您独特的团队和代码库服务,它需要了解您的项目以及团队的最佳实践。因此,在您输入提示时,您不仅在教 Copilot 未来如何更好地回应您,还通过记录开发最佳实践为团队提供了帮助,同时也能优化团队成员未来使用 Copilot 时的响应效果!计划完全可见,围绕您的目标展开,并通过工具调用实现,使行为更可预测、更可靠且易于跟进。计划文件默认是临时的。

2025-12-17 18:52:52 341

原创 Iceberg Rest Catalog + OSS 实践踩坑记录:Polaris x-amz-content-sha256 报错 与 Nessie 配置

在1.2.0 之前,因为必须要走标准的S3 STS鉴权,所以老版本Polaris OSS肯定用不了。Storage:性能测试机器在国内,海外的对象存储是用不了了(比如S3,Azure,GCS),只能用国内的(比如OSS,COS,OBS)且可能由于catalog server没支持到位,只能走S3协议。Catalog:尽量贴合生产,需要主流的catalog type,且性能测试在国内,所以Glue、Snowflake Catalog 等都用不了,只能自己部署1套catalog 服务。

2025-12-15 11:40:49 768

原创 ROS2核心概念之动作

self._send_goal_future.add_done_callback(self.goal_response_callback) # 设置一个服务器收到目标之后反馈时的回调函数。动作和服务类似,使用的也是客户端和服务器模型,客户端发送动作的目标,想让机器人干什么,服务器端执行动作过程, 控制机器人达到运动的目标,同时周期反馈动作执行过程中的状态。self._send_goal_future = self._action_client.send_goal_async( # 异步方式发送动作的目标。

2025-12-15 11:40:08 467

原创 SSO(Single Sign On-单点登录)方案笔记

在 SSO 架构中,所有应用(Service Providers, SPs)都放弃了自主验证用户身份的权限,转而无条件地信任 IdP 做出的认证决定。SSO是一种身份验证机制,用户只需要使用一套凭据(比如用户名和密码)登录一次,就可以访问多个相互信任的应用程序或系统,而无需在每个应用中重新登录。客户端(浏览器侧): 在用户的浏览器中,设置一个属于IdP域名的Cookie,其值通常就是这个服务器端会话记录的ID。服务器端(IdP侧): 在IdP的服务器上(例如在内存、Redis或数据库中)创建一个会话记录。

2025-12-14 10:23:05 326

原创 改善深层神经网络 第二周:优化算法(三)Momentum梯度下降法

就像猫狗分类中,一个批次可能白猫多一些,一个批次可能橘猫多一些,而还有一些批次甚至有和狗长得很像的猫,这都会影响该次迭代中的学习效果,从而影响参数更新,而这前后的不同就会让损失“震荡”。就像刚刚的猫狗分类里,原来模型看完白猫就学白猫,然后看橘猫学橘猫,之后再看“狗猫”学“狗猫”,就像对什么都很好奇的小孩,每遇到新的一批样本,都要调整自己对猫的认知,就是一次震荡。一次看多种颜色的猫,就稳了。没错,只要我们增加批次样本量,模型一次学习更多的样本,自然就学到了更多的特征分布,出现“噪声集中”的几率也会变少。

2025-12-14 10:22:26 707

原创 使用 Word 模板占位符生成文档的技术方案实践

Word 模板占位符 是指在 .docx 文档中预先定义的特殊标记(如 ${NO}、${CPMC}),用于标识将来会被动态数据替换的位置。开发效率 ⭐⭐⭐⭐ 高 模板由业务/设计人员维护,开发只需关注数据绑定 ⭐ 低 每新增一个字段需修改 Java 代码,重新编译部署。维护成本 ⭐⭐⭐⭐ 低 修改格式只需更新 .docx 模板,无需动代码 ⭐ 高 任何格式调整都需程序员介入。调试难度 ⭐⭐ 中 需注意 Word Run 拆分问题 ⭐⭐⭐ 高 代码逻辑复杂,易出错。

2025-12-13 17:31:14 403

原创 【URP】Unity[抗锯齿]原理实现与对比

分三阶段实现:边缘检测(基于颜色/深度差)、权重计算(分析边缘模式)、混合执行(沿边缘方向插值)。例如,当检测到斜线边缘时,会模糊相邻像素以消除阶梯状锯齿‌。‌纹理资源‌:依赖预计算的AreaTex(存储混合模式)和SearchTex(存储搜索方向),需导入为Texture2D资源。‌动态混合策略‌:基于运动向量长度调整混合权重,静态区域权重低(保留更多历史数据),动态区域权重高(减少拖影)‌权重计算阶段‌:通过AreaTex和SearchTex分析边缘形态(L形/T形/对角线),计算混合权重。

2025-12-13 17:30:30 501

原创 夜莺监控设计思考(一)整体定位、架构设计、单进程多进程选择、高可用设计

本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。

2025-12-12 10:39:09 254

原创 恭喜你发明了 Golang 的 sync.Once

自然而然就会想到 CAS 的操作消耗很少,那在获取锁的流程之前先 CAS 一下不就好了,虽然在初始化前是多了一步操作,但是毕竟只要初始化完成之后就会只走 CAS 的逻辑了,所以对于长时间持续运行的程序来熟还是更优的。其实就是需要在上面的基础上增加一个等待机制,那说到阻塞或者等待资源释放,第一个想到的就是 Go 源码中的 sync.Mutex,互斥锁的作用是同一时间只能有一个协程持有锁去判断和操作 done,其他协程拿不到锁都会阻塞,于是第一个拿到锁的协程会执行初始化,后面并发过来的协程就乖巧地静静等待。

2025-12-12 10:38:12 547

原创 uniapp开发H5引入uni.webview.js注意事项

- 由于本H5项目是使用uniapp开发的,uni-webview.js文件导出了uni对象,会被uniapp本身的uni对象覆盖,所以把源码中的uni变量改为uniWeb -->下载uni.webview.1.5.6.js后格式化一下方便查看,在js中搜索uni然后修改这2处地方,我这里改为uniWeb,在后续使用过程中使用uniWeb来调用SDK内的方法。若是普通html那可能是引入方式不对,若webview中加载的H5是使用uniapp开发的话,就需要修改uni.webview.js源码来解决了。

2025-12-11 09:43:02 140

原创 Go 1.26 内置函数 new 新特性

这是因为golang的逃逸分析主要保证内存安全,而在优化上比较保守,所以在处理我们的帮助函数时哪怕这个函数已经被内联,编译器还是会选择分配一块堆内存再返回指向这块内存的指针。getPointerValue的参数不是指针,因此会把传进来的值拷贝一份,然后再取拷贝出来的新变量的指针,这样就不会有指针指向那些大对象的字段或者元素了,这些大对象也可以尽快得到释放从而不会浪费内存。new在1.26中获得的新功能是可以接受一个表达式,它会复制表达式的结果到同类型的变量里并返回指向这个变量的指针。

2025-12-11 09:42:13 413

原创 深入解析 JVM 类加载机制:从字节码到运行时对象

性能优化 - StackMapTable:为了加速这个耗时的过程,JDK 6 之后,编译器(javac)会在编译时预先计算好很多验证信息(记录每个关键点的变量类型和操作数栈状态),并保存在 Class 文件的 StackMapTable 属性中。简单来说,"加载"阶段就是 JVM 的物资准备阶段,它为后续的校验、初始化等步骤准备好了最重要的原材料——类的二进制数据,并建立了访问这些数据的基础设施。只有通过此关检查,数据才会被存入方法区,后续检查都将基于方法区内的结构进行,而不再直接操作字节流。

2025-12-10 09:46:33 648

原创 从MMoE到PLE:读懂多任务学习架构的渐进式演化

当不同任务的目标存在内在冲突时(例如,在视频推荐中,“提升点击率”可能偏好标题党,而“提升完播率”则偏好高质量长视频),这些相互矛盾的优化目标会产生方向可能相反的梯度,并同时作用于所有共享专家。例如,任务 B 的损失 L_B,其梯度可以通过高层的共享专家反向传播,并最终影响到低层中任务 A 的专属模块。但其关键区别在于,每个任务的输入,是由其自身的专属专家和共享专家的信息通过门控网络加权组合而成。其“渐进式”体现在,更高层网络的输入,来自于其下一层所有专家(包括所有任务的专属专家和共享专家)的输出。

2025-12-10 09:45:33 612

原创 Flask数据库操作进阶:告别裸写SQL,用ORM提升开发效率

Flask-SQLAlchemy作为主流ORM,不仅提升开发速度,还内置安全机制和查询优化,是进阶必备技能。关系映射是ORM核心:db.relationship定义逻辑关联,db.ForeignKey确保数据完整性。return jsonify({'message': '用户创建成功', 'user_id': user.id}), 201。- 查:User.query.filter_by(username='john').first()- 删:db.session.delete(user);

2025-12-09 17:46:35 639 1

原创 Oracle数据字典深度解析:架构、组件与实践应用

数据字典表是存储数据库结构信息的持久化表,名称通常以$结尾(如OBJ$、TAB$、COL$、CON$、SEG$),在数据库创建时通过$ORACLE_HOME/rdbms/admin/sql.bsq脚本初始化。从架构上,数据字典由五部分构成:内部RDBMS(X$)表、数据字典表、静态数据字典视图、动态性能(V$)视图,以及辅助管理的同义词(Synonym)。动态性能视图(V$视图)记录数据库运行时的实时信息(如会话、SGA、进程、锁等),数据随数据库状态动态更新,是DBA监控与诊断的核心工具。

2025-12-09 17:45:55 522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除