自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LLM For Rec 实战:如何利用 LLM 降低推荐系统的搭建门槛

HealthHub 的 AI 实时任务链路大概分成五段:fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;业务事件饮食/运动/睡眠/情绪/设备同步/生理异常触发编排开关/版本/频控/冷却/每日上限输入组装基础输入 + 今日已有任务推荐生成事件AI 工作流校验 → 上下文采集 → 生成 → 过滤推荐回调事件结果处理。

2026-04-30 16:56:04 406

原创 AI Coding:什么样的公司不适合把 Token 当作降本增效的手段

摘要:AI替代人力的成本陷阱 近期案例显示,AI代理的Token成本存在严重不可预测性。一个典型案例中,AI代理因API限流陷入循环,63小时烧掉4200美元。数据显示,90%用户Token消耗低于12美元/天,但10%的高消耗用户将均值拉高数倍,部分企业月账单甚至超过工程师薪资。 Token成本具有四大反直觉特性: 上下文累积导致成本呈几何级数增长 输出token比输入token贵3-5倍 错误循环成为成本放大器 消耗呈极端长尾分布 真正适合用AI替代人力的企业需具备:业务边界清晰、成熟工程基建、专业AI

2026-04-21 15:18:22 462

原创 AI Coding:浅谈 Harness Engineering

前面零零碎碎聊了不少,汇总成一张图看得更清楚:说实话,看完这张图有点不好意思。我大概处在Level 2(团队级)的位置——Rules 和 Skills 把核心场景覆盖了,MCP 打通了外部数据源,PEV 建了验证闭环。但离 OpenAI 那种 Level 3——自定义 Linter 硬卡、Per-Task 成本预算、Agent 行为全程追踪、定期垃圾回收——还差得不少。前两篇文章攒下来一个赛车的比喻,这里把它写完整。第一篇说:赛车不是只靠引擎马力大就能赢,还得有刹车、悬挂和空力套件。

2026-03-26 10:01:49 540

原创 让 Spring Event 飞出 JVM:一个轻量级分布式事件框架的设计实录

先看一段代码。标准的 Spring Event 用法。这两段代码在我们的单体服务里跑了大半年,一行都没动过。然后有一天,积分服务被拆成了独立进程。还是那个还是那个——但事件发不过去了。Spring Event 走的是 JVM 内部的,进程一拆,链路就断了。这篇文章讲的就是我们怎么做到这件事的,以及中间翻了多少次车。

2026-03-20 18:00:00 366

原创 AI Coding:为什么我说 Cursor 比 Claude Code 更适合复杂项目编程

研究发现,同样的AI编程规则在Cursor和Claude Code中遵循率存在显著差异。实验显示,Claude Code在长会话后期会出现规则遗忘现象,而Cursor能保持稳定。这源于两者不同的上下文管理机制: Claude Code采用静态注入方式,重复加载规则导致上下文空间浪费,且采用不可逆的摘要压缩,导致具体规则细节丢失。 Cursor采用动态上下文发现机制,工具输出不直接占用上下文空间,规则通过分层索引存储,可按需检索,并采用可恢复压缩方式保留关键信息。 核心结论:AI编程工具的上下文管理架构

2026-03-19 14:10:33 531

原创 AI Coding:从Vibe Coding到Agentic Engineering

使用 AI 工具 ≠ 个人提效 ≠ 组织提效我们花了半年验证了一件事:从"用 AI 工具"到"组织真的提效",中间差的不是更好的模型或更贵的订阅,是一套把团队的知识、流程、能力编码成 Agent 能读懂的指令的工程体系。Rules 编码知识,Skills 编码流程,MCP 编码能力。三样东西凑齐了,AI 才能从一个"什么都会但什么都不深"的通才,变成"在这个项目里知道怎么干活"的专才。这条路没捷径。

2026-03-16 20:17:54 645

原创 【实战】企业级IM系统架构设计与技术实现

fill:#333;客户端服务端长连接建立心跳标记用户在线网络断开(用户无感知)推送消息(失败,但服务端不知道)需要等待下一个心跳周期才能感知用户离线心跳超时标记用户离线客户端服务端解决方案心跳机制:定期心跳检测连接状态推送失败重试:失败后存入离线队列消息确认:接收方确认收到才算投递成功层面优化策略效果协议序列化体积小50%+通信WebSocket长连接减少握手开销ID生成雪花算法去中心化,高性能缓存Redis多级缓存减少DB压力存储数据库分区查询性能提升处理事件异步。

2025-11-26 14:00:15 1028

原创 Spring MVC参数绑定增强实践:源码解析与实现

选择继承而非实现保持原有注解处理逻辑(@ModelAttribute)复用父类参数验证机制最小化代码侵入性@Override});@Override。

2025-04-08 11:35:55 1173

原创 AWS中Keepalived+Nginx高可用部署流程

1.需要拥有一个拥有可以管理EC2的IAM账号并配置好访问密钥,如图下所示:2.keepalived组成的主备节点需要在同一个子网下,如图下所示:执行2)配置AWS iam执行配置实例:3)创建一个弹性ip地址执行命令:记下你的AllocationId,后面要用到。执行在里面添加下面的内容:5)安装jq(jq 是一款简单而又强大的 json 解析工具)三.Keepalived主从配置1)注意事项:1.Aws的虚拟交换机(VPC)VRRP 协议的组播被禁止,所以需要配置心跳通

2024-07-15 19:31:30 988 1

原创 Redis之zset高级玩法

前言最近博主收到了一个排序需求,需要我们按照用户权重、状态、性别和在线离线状态对用户进行排序。按照我们传统的数据库里也不行,因为如果要排序我需要取出所有的数据进行排序。假如说我这时候有很大的数据量该怎么办?我不可能全部取出来然后通过java排序,这样的性能是非常低的。那么有小伙伴肯定就会说,用zset直接排序。那么zset我们都知道是通过score排序的,但是我们怎么办把多权重排序放到zset里呢?核心技术首先按照我的用户权重、状态、性别和在线状态这4个维度的角度我们先按照需求分一下他们的排序优先级。

2022-06-15 14:30:39 1587 3

原创 Rancher+k3s+阿里云流水线详细配置教程

一、前言当我们的项目是集群部署的时候,我们再更新代码部署到机器上的时候是很麻烦的。所以这时候我们需要借助一些工具来帮助我们更便捷的进行更新和发布。首先我准备了两台机器进行一个环境搭建演示。一台用于安装rancher,一台用来跑微服务。二、安装Rancher1.安装dockerapt-get updateapt-get install docker.io2.安装Rancherdocker run -d --restart=unless-stopped \--name=rancher-ser

2021-12-17 18:10:33 5857

原创 Java多线程之ThreadLocal

前言在前面几章Java多线程相关的文章中,相信大家已经对多线程有了一定的基本了解,那么我们今天看一个平时工作中可能不太常用或者没有接触到过的一个工具类ThreadLocal。在前面volatie相关的文章中我有提到过JMM内存模型,那么ThreadLocal其实就是在每个线程内部给我们维护一个变量的副本,这时候我们线程操作的变量就都是每个线程内部独有的副本变量,从而达到线程安全的一个效果。但是ThreadLocal还有另一个作用:隐式传参。接下来我们先了解一下ThreadLocal的用法吧。Thread

2020-10-27 16:18:33 555 1

原创 Spring源码系列之Spring整体简介(一)

Spring框架作为我们java程序员来说都是再熟悉不过的,我们平常所使用的SpringBoot亦或者是SpringCloud都跟我们的Spring息息相关。但是当我们在使用SpringBoot或者SpringCloud的时候,有没有想过他们的核心到底是什么?其实很简单,就是我们的IOC和AOP,也就是我们都知道的Spring的两大核心点。IOC和AOPIOC就是我们所谓的控制反转,AOP也就是我们说的面向切面。我相信大家肯定都用过@Service@Component注解。那么被这两个注解所托管的容器就

2020-10-17 12:18:10 382

原创 Java多线程之ReentrantLock(二)源码解读

其实,在我们Java中也有一个使用了Java语言开发的一把锁,名字叫ReentrantLock。它位于我们的java.uilt.concurrent包下的一个线程安全的工具类。接上一篇讲,上一篇我们介绍了ReentrantLock的基本用法,并且也通过ReentrantLock底层实现的原理自己手写了一把ReentrantLock。那么本期我们就开始深入的来看一看ReentrantLock核心源码到底是什么样的。首先我们来看ReentrantLock的类结构,不知道大家有沒有注意到,我昨天我昨天.

2020-10-08 16:51:36 411

原创 Java多线程之ReentrantLock(一)ReentrantLock介绍及手写ReentrantLock

某一天,李四同学去某一家互联网公司面试。面试官:李同学,你知道Java有哪一个是使用java写的锁并且和sychronized性能差不多?李同学:…面试官:那你知道什么是CAS吗李同学:…面试官:出门右转是电梯自己走吧!什么是ReentrantLock其实,在我们Java中也有一个使用了Java语言开发的一把锁,名字叫ReentrantLock。它位于我们的java.uilt.concurrent包下的一个线程安全的工具类。我们大名鼎鼎的JUC包就是由这位图中的老爷爷写的,Reentr

2020-10-05 22:17:54 532 2

原创 Java多线程之volatile详解(三)

对于JAVA并发编程而言,我们始终要遵守这三种特性的规则。才能使我们的代码不出问题。在上一篇我们通过字节码层面和汇编的层面对volatile进行了一个简单的介绍。那么这一期我们将深入的去给大家介绍一下volatile。代码执行过程首先我们先来了解一下代码的执行过程。我们首先通过JVM的类加载器将类加载到元空间里面,元空间会通过元数据对象在堆内生成一个Class对象。那么CPU是如何执行到我们的代码的呢?首先我们的栈和线程是1:1对应的关系。我们首先会将字节码文件通过字节码执行引擎和JIT将这个字.

2020-08-18 21:31:10 376

原创 Java多线程之volatile详解(二)

首先,java中除了synchronized关键字可以保证线程安全,还有一个关键字volatile也可以保证。你可以理解它是一个轻量级的synchronized,但是它不能保证线程的原子性。至于为什么我们稍后再说。在了解volatile之前,我们需要知道JMM内存模型与CPU和内存

2020-08-15 23:21:03 225

原创 Java多线程之volatile详解(一)

有一天,张三去某互联网公司面试:面试官:你好,张同学,请问你知道java有哪些关键字可以保证线程安全吗?张三:知道!synchronized关键字可以保证!面试官:还有呢?张三:…面试官:是你自己出门还是我送?首先,java中除了synchronized关键字可以保证线程安全,还有一个关键字volatile也可以保证。你可以理解它是一个轻量级的synchronized,但是它不能保证线程的原子性。至于为什么我们稍后再说。在了解volatile之前,我们需要知道JMM内存模型与CPU和内存C

2020-08-11 11:06:34 408

原创 JVM垃圾回收器之CMS三色标记、增量更新与跨代引用

JVM垃圾回收器之CMS三色标记、增量更新与卡表Hello大家好,这里是残月。在上一篇关于JVM的文章中,我有讲到CMS的执行过程和优缺点,那么今天我们来深入了解一下其中一些底层细节方面的东西。1.三色标记什么是三色标记?实际上三色标记中的色并不只是颜色,而是我们对它的一种叫法,但是实际上他不会用red white 这种东西来定义,而是用例如0,1,2这样的东西来定义不同的对象。其实三色标记就是我们CMS在扫描过程中对对象的一种定义。那么具体的定义如下:黑色:表示对象已经被垃圾回收机制访问过或者对

2020-08-01 03:31:40 3970 4

原创 HashMap底层实现原理你都不知道?不是吧不是吧!

HashMap之底层实现机制和原理hello大家好,这里是残月。今天我将给大家讲解一下HashMap底层实现原理和机制。相信大家不管在面试大公司还是小公司也好,都会经常被问道HashMap的实现原理,可能有的小伙伴上来就说:“啊,我知道!HashMap1.7是数组加链表,1.8是数组加链表加红黑树!”。。。然后。。。然后就没了。PS:对不起,出门右转自己下电梯(⁼̴̀д⁼̴́)。其实要想搞懂HaspMap的底层实现原理其实很简单,对于有一定数据结构基础的小伙伴来说我们只需要知道他的扩容机制、hash算法

2020-07-28 18:02:41 1194

原创 JVM垃圾回收器之CMS回收过程及优缺点

JVM垃圾回收器之CMS回收过程及优缺点今天给大家介绍一下CMS垃圾回收器。首先CMS是一款多线程+分段操作的一款垃圾回收器。其最大的优点就是将一次完整的回收过程拆分成多个步骤,并且在执行的某些过程中可以使用户线程可以继续运行。也就是说CMS可以减少STW的时间对我们的用户体验会非常好,所以CMS垃圾回收器也是现在大部分企业所用到的最多的一款垃圾回收器。(CMS只管老年代)接下来我会给大家从浅到深讲解一下CMS垃圾回收器!一.CMS垃圾回收器的使用与执行过程想要使用CMS垃圾回收器非常简单,我们只需

2020-07-12 04:35:00 4821 1

空空如也

空空如也

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

TA关注的人

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