Hi,这里是达达芬奇。欢迎来到我的 Blog —— 我在这里沉淀学习笔记、技术实践和项目复盘,偶尔也记录一些生活里的观察与思考。希望这些文字能对你有所帮助。

GitHub Email

Goal 模式:让 Agent 围绕目标持续工作

Goal 模式把一次性的指令变成一份跨多轮有效的完成契约:用户定义目标和完成证据,Agent 每轮执行一部分工作,外层 Harness 保存任务状态,并在满足条件时安排续跑。

它的关键不是让模型一直生成,而是把目标、续跑资格、完成判定和停止条件放进一个可管理的闭环。

私聊和群聊的消息已读怎么做?

私聊和群聊用同一套数据做已读。每个会话的消息按序号只存一份,每个用户在这个会话里只存一个水位线。私聊拿对方那一个数,把消息显示成已读或未读。群聊拿其余成员的水位线,数出「几人已读」。两边都不要把已读写回消息正文。

Kubernetes 怎样用 Deployment 和 DaemonSet 管在线应用?

离线任务用 Job 包装一层,跑完即结束。在线任务如果只用裸 Pod,restartPolicy 默认是 Always,容器异常退出后会被拉起;但 Pod 被删除、节点宕机时,容器级策略无法补救,实例会直接消失。需要多副本时,数量、健康和更新也只能靠人工维护。

处理方式仍然是对象组合:Pod 只负责容器,在线业务再套一层控制器。这一层有两种,调度策略不同:

  • Deployment:在集群中维持 N 个相同副本,不指定必须落在哪台机器。Nginx、WordPress 这类业务用它。
  • DaemonSet:每个节点恰好运行一个 Pod,与节点绑定。kube-proxy、日志采集、监控代理用它。

多节点集群里,这两种差别才明显。

Kubernetes 怎样在 Pod 外面组合业务?

上一讲说了,Kubernetes 调度的最小单位是 Pod,不是容器。那是不是写个 Pod 就能上业务了?还不行。

一个 echo 跑完就退出的 Pod,会被反复拉起,最后变成 CrashLoopBackOff。Nginx 这类长期在线的服务没有这个问题;日志分析、转码这类“算完就退出”的任务则会踩中默认重启策略。另外,端口、密码如果写死在镜像里,改一次配置还得重新构建镜像。

所以先要把任务分成在线和离线。分清了,才知道什么该直接用 Pod 的默认行为,什么该用 Job / CronJob 包一层。配置再用 ConfigMap / Secret 从外面注入。

Kubernetes 为什么能自动化运维?

最近在学极客时间《Kubernetes入门实战课》,把第 10 讲工作机制这一块过了一遍。这篇文章是我学完之后的一些总结,主要想把自己理解的架构、组件和协作方式写清楚,后面排障时也有一条能顺着走的线。

容器解决的是“应用怎么打包、怎么分发”,真正难的是后面那一堆运维问题:调度到哪台机器、挂了怎么恢复、网络怎么通、状态怎么盯。Kubernetes 能成为事实标准,我觉得不只是因为它出身 Google,而是它把这些事抽象成了一套能自己运转的工作机制。

数据分片与数据库分库分表

高并发写场景可以通过数据分片把数据或请求拆成多份并行处理,数据库中的典型实现是分库分表;分表解决单表数据量问题,分库解决单库并发和资源瓶颈,垂直拆分侧重业务和字段拆分,水平拆分侧重数据行拆分,而范围分区、哈希分区、一致性哈希和从库升级扩容共同构成了分库分表落地时最关键的数据路由与扩容能力。

分布式唯一 ID:为什么 UUID 不够用?

分库分表之后,单库自增主键不再能保证全局唯一;而 UUID 虽然生成简单,却存在空间占用大、写入索引不友好等问题。真正适合亿级流量系统的唯一 ID,需要在全局唯一、空间占用、高并发、高可用和数据库主键友好之间取得平衡。

© 2026 DadaVinCi's Blog

Elegant theme by Shiro · Made by Acris with ❤️