- 博客(340)
- 收藏
- 关注
原创 智能体设计模式(二)反思-工具使用-规划
本文是"智能体设计模式"系列的第二部分,重点介绍了反思、工具使用和规划三种核心模式。反思模式通过让AI自我评估和改进输出质量,类比于人类写作时的反复修改过程;工具使用模式赋予AI调用外部API和资源的能力;规划模式则使AI能够分解复杂任务并制定执行策略。文章通过生活化比喻和代码示例,详细阐述了这些模式的实现原理和应用场景,为开发者构建更智能的AI系统提供了实用框架。
2026-01-17 11:26:41
342
原创 智能体设计模式(一):提示链、路由与并行化
《智能体设计模式实战指南:提示链、路由与并行化》摘要 本文系统介绍了智能体设计中的提示链模式,通过分而治之的方法解决复杂AI任务处理问题。核心观点是将复杂任务拆解为多个简单步骤,形成流水线式处理流程。关键要点包括:1)提示链通过模块化设计降低认知负荷;2)结构化输出(如JSON)确保信息传递准确性;3)上下文传递机制实现步骤间无缝衔接。文章通过生活化比喻和代码示例,展示了如何构建从文本提取到格式转换的完整提示链。实践建议强调任务拆解要适度,简单场景无需过度设计。该模式特别适用于市场分析、数据转换等需要多步处
2026-01-16 15:21:59
661
1
原创 Istio 服务网格完全指南:从原理到实战
想做灰度发布?得改代码、改配置、重新部署,还得祈祷别出错想知道服务 A 调用服务 B 的延迟?得埋点、加日志、搞监控想实现服务间加密通信?得改代码、管理证书、处理证书过期想实现熔断限流?每个服务都得单独实现一遍如果你对这些问题深有体会,那么恭喜你,Istio 就是为你准备的!本文将从原理到实战,带你彻底搞懂 Istio 服务网格。想象一下,你管理着一个有 100 个微服务的系统。问题一:服务间通信的复杂性服务发现:服务 B 在哪里?负载均衡:服务 B 有 10 个实例,调用哪一个?
2026-01-14 22:12:15
744
原创 智能体设计模式 - 核心精华
智能体设计模式的核心是将大语言模型(LLM)与感知、规划、行动和记忆能力结合,形成能自主思考执行的AI助手。智能体通过五步循环运作:获取任务→分析环境→制定计划→执行行动→学习改进。相比普通AI聊天,智能体能完成多步骤任务、使用工具、记忆上下文并持续优化。 智能体设计分为四层架构:基础执行层(提示链、工具使用)、智能能力层(规划、反思、记忆)、多智能体协作层。掌握7个核心模式即可覆盖80%应用场景:1)提示链分解复杂任务;2)工具使用突破知识边界;3)规划制定多步骤策略;4)反思实现自我改进;5)记忆管理保
2026-01-13 14:07:14
369
原创 CI/CD 监控指南:让流水线透明可控
摘要:CI/CD监控体系构建指南 本文系统介绍了CI/CD监控体系的构建方法,重点涵盖Pipeline执行状态、GitOps同步状态和构建性能指标的监控。内容包含Tekton监控配置、指标分类及常用PromQL查询示例,并提供了完整的CI/CD监控架构图。适用于DevOps工程师快速建立透明可控的CI/CD监控系统,实现从构建到部署全流程的可观测性。通过ServiceMonitor配置和Prometheus指标采集,可及时发现Pipeline失败、应用不同步等问题,并分析构建性能瓶颈。
2026-01-08 11:04:44
619
原创 CI/CD: 金丝雀发布 Argo Rollouts 用户指南
Argo Rollouts 金丝雀发布指南 本文介绍了使用 Argo Rollouts 实现金丝雀发布的完整流程和操作指南。金丝雀发布通过渐进式流量切换来降低发布风险,先让小部分用户访问新版本,确认无误后再逐步扩大范围。文章提供了7个典型场景的操作示例,包括查看发布状态、触发新版本、观察进度、手动推进、紧急回滚等核心功能。与传统全量发布相比,金丝雀发布能显著降低故障影响范围,并支持一键回滚,使发布过程更加安全可控。指南采用生活化比喻(如餐厅试菜)帮助理解技术概念,并包含完整的发布流程图和命令速查表,适合运维
2026-01-02 19:54:06
822
原创 CI/CD: K8S + Tekton + ArgoCD 深入浅出完全指南
本文介绍了基于Tekton和ArgoCD的CI/CD实践指南,将复杂流程简化为通俗易懂的"建筑工人"和"搬家公司"比喻。Tekton负责构建镜像(CI阶段),ArgoCD负责部署到Kubernetes(CD阶段),Git作为唯一真相来源。指南包含架构总览、环境信息、核心组件速查表以及日常操作指南,帮助开发者快速掌握从代码提交到自动部署的全流程,实现"改代码→git push→喝咖啡→部署完成"的自动化体验。特别适合需要快速上手这套CI/CD系统的开发者,涵盖了触发构建、查看状态、排查问题等核心操作。
2026-01-02 11:39:49
563
1
原创 CI/CD: Argo 深入浅出教程
ArgoCD是Kubernetes原生的GitOps持续部署工具,通过将Git仓库作为配置的唯一来源,实现自动化同步和版本控制。教程通过生活化比喻解释核心概念:Application(工作任务书)、Source(任务来源)、Destination(执行地点)和Sync(同步操作)。重点分析了Application资源的配置细节,包括Git仓库路径设置、目标集群配置和同步策略(手动/自动/自动修复)。特别指出常见误区如递归扫描子目录需要显式设置,并对比了prune(清理多余资源)和selfHeal(自动修复漂
2026-01-02 11:38:20
664
原创 CI/CD: TektonCI 深入浅出教程
本文摘要了Tekton这一Kubernetes原生CI/CD工具的核心概念和使用方法。Tekton将CI/CD流程转化为Kubernetes资源,通过Step、Task、Pipeline等组件构建流水线。Step是最小执行单元,Task是一组Steps,Pipeline编排多个Tasks。文章用生活化比喻解释这些概念,如将Step比作烹饪动作、Task比作一道菜、Pipeline比作整桌宴席,并提供了实际项目示例说明如何定义和使用这些组件。适合已有K8s基础、想搭建云原生CI/CD的开发者学习。
2026-01-02 11:34:21
762
原创 CI/CD: Github + Jenkins + Harbor 指南
本文介绍在Kubernetes集群中搭建基于Jenkins+Harbor的CI/CD流水线方案。主要内容包括:整体架构设计(使用Jenkins作为CI/CD引擎,Harbor作为私有镜像仓库,通过smee.io实现内网Webhook代理);详细部署步骤(Harbor通过Helm安装,Jenkins部署为StatefulSet);完整CI/CD流程(代码推送→Webhook触发→Jenkins构建→镜像推送→K8s部署);以及环境准备、排错指南和最佳实践。该方案适合企业内网环境,实现从代码提交到应用部署的自动
2025-12-28 14:08:10
1056
原创 CI/CD: GitHub K8S 部署指南
本文详细介绍了使用GitHub Actions为go-zero微服务项目实现CI/CD部署到Kubernetes集群的全过程。主要内容包括项目架构设计、部署步骤实施、常见问题解决方案以及完整的CI/CD流程说明。重点解决了镜像推送权限、K8s证书配置、服务依赖循环、健康检查等关键问题,并提供了阿里云镜像仓库替代GitHub Packages的优化方案。通过ConfigMap挂载配置文件、合理设置服务依赖关系等实践,确保了微服务在K8s环境中的稳定运行。
2025-12-24 15:30:07
1079
原创 Java framework-cache
ins-framework-cache是一个基于Spring Cache和Redis的高性能缓存框架,提供统一缓存管理能力。框架核心特性包括:自动配置、多种缓存管理器支持(Redis/内存/无操作)、灵活配置选项、Redis集群支持以及智能键生成策略。架构设计分为应用层、工具层、Spring Cache抽象层、中间件层和Redis存储层,通过CacheConfig配置类实现核心功能。该框架适用于需要高效缓存管理的Java应用,支持单节点和集群部署模式,简化了缓存使用复杂度,提升了系统性能。
2025-11-25 17:03:36
415
原创 Java framework-aoplog
本文介绍了基于AOP的日志框架ins-framework-aoplog的使用指南。框架通过注解和切面技术实现方法级日志记录,包含核心组件LogAopFormat、AopThreadLocal等,支持请求链路追踪和异常日志记录。详细说明了集成配置步骤(Maven依赖、配置文件)、使用方法(基础注解、高级过滤)和最佳实践(性能优化、安全考虑)。特别解析了AOP代理机制、线程数据管理原理和日志级别控制策略,并提供了常见问题解决方案。该框架可帮助开发者快速构建完整的调用链日志系统,适用于Controller、Ser
2025-11-25 13:14:32
801
原创 Java Log4j2
Log4j2配置指南摘要 Log4j2是Apache基金会提供的日志框架升级版,相比Log4j 1.x具有更高性能和更丰富的功能。本文档详细介绍了Log4j2的核心特性、Maven依赖配置方法以及XML配置文件的编写规范。关键点包括:必须排除Spring Boot默认的logback依赖;推荐使用log4j2-spring.xml配置文件;配置文件包含Properties、Appenders和Loggers三部分结构;支持控制台和文件等多种日志输出方式;可通过monitorInterval实现配置热更新。文
2025-11-25 13:13:44
863
原创 Java MyBatis
规则 1: DAO 接口必须继承@Mapper// T: 实体类型 (PO)// I: 主键类型规则 2: 使用@Mapper注解标记接口规则 3: 如需自定义参数名,重写方法并添加@Param注解@Mapper/*** 重写方法以支持参数绑定* 在 XML 中可以使用 #{idList} 引用参数*/@Override/*** 分页查询(重写以支持参数绑定)*/@Overrideins/*** 重写方法以支持参数绑定。
2025-11-25 13:13:10
1011
原创 Java Swagger/OpenAPI
*** Swagger/OpenAPI 配置类*/@Bean.title("Monitor API 文档").description("系统用户管理 API 接口文档")配置说明: 标识为配置类@Bean: 创建OpenAPIBeanInfo: API 基本信息(标题、版本、描述、联系方式、许可证)要求: 简短、清晰,一句话概括接口功能格式: 动词 + 名词,如 “新增用户”、“查询用户列表”长度: 建议不超过 20 个字符// ✅ 正确。
2025-11-25 13:12:14
721
原创 mvcc 简介
MVCC是多版本并发控制技术,通过维护数据的历史版本实现读写并发。核心机制包括:隐藏列(事务ID、回滚指针)、undo日志记录版本链、Read View判断可见性。不同隔离级别下Read View生成策略不同,读已提交每次查询新建视图,可重复读复用首次视图。MVCC优势在于读写互不阻塞,避免锁竞争,显著提升并发性能,成为现代数据库实现高效事务处理的关键技术。
2025-11-13 10:49:01
470
原创 k8s中对gkv的理解 TypeData
Kubernetes中的GKV(Group、Version、Kind)是资源标识的核心概念,通过apiVersion和kind字段在YAML配置中体现。Group将功能相关资源归类(如apps、batch),Version管理API演进(v1稳定版、v1beta1测试版),Kind指定资源类型(如Deployment、Service)。GKV确保资源正确解析和版本兼容性,可通过kubectl api-resources查询。理解GKV是编写正确K8s配置的基础。
2025-11-12 09:03:46
568
原创 编码规范-12-Factor App 安全
**12-Factor App(十二要素应用)**是一套云原生应用的开发原则,旨在提升应用的可移植性、扩展性和可维护性。其核心包括:单一代码库、显式依赖管理、配置分离、无状态进程、自包含服务、环境一致性、日志标准化等。这些原则强调应用应独立于环境,支持快速部署和弹性扩展,适用于现代分布式架构。遵循12要素的应用能更好地适配容器化部署和云平台,实现高效运维与持续交付。
2025-10-31 09:05:11
565
原创 iptable常用命令
摘要:iptables是Linux内核防火墙的重要配置工具,支持查看、添加、删除规则及NAT转换。常用命令包括-L查看规则、-A/-I添加规则、-D删除规则,支持端口控制、IP过滤和转发设置。关键操作包含SNAT/DNAT地址转换、默认策略配置(ACCEPT/DROP)及规则持久化保存(iptables-save/restore)。使用时需注意协议、端口、网卡等参数,建议操作前备份现有规则。
2025-09-18 11:32:36
373
原创 CNI(Container Network Interface,容器网络接口)
CNI IPAM是容器网络接口中的地址管理组件,负责为容器动态分配、回收IP地址。它以插件形式与网络插件协同工作,支持host-local(节点本地)、dhcp(外部服务器)、calico-ipam(全局池)等多种模式,满足不同网络场景需求。核心功能包括IP分配、子网管理、DNS配置和地址回收,相比传统IPAM更轻量化,专注容器快速创建/销毁的特性。配置通过JSON定义,典型场景如bridge插件搭配host-local实现单机容器网络。选择IPAM插件需权衡性能、规模及现有架构兼容性。
2025-09-10 09:30:10
699
原创 gin go-kratos go-zero框架对比
本文对比了Go语言三大服务框架Gin、Go-Kratos和Go-Zero的核心差异。Gin是轻量级HTTP路由框架,适合简单API;Go-Kratos是面向企业级微服务的DDD框架,架构完整但学习成本高;Go-Zero强调开发效率,内置微服务组件和代码生成工具。三者定位不同:Gin适合中小型项目,Kratos适合大型系统,Zero则侧重快速开发。选择建议:要简单选Gin,要规范选Kratos,求效率选Zero。开发者可根据项目规模、团队情况和技术需求进行选择。
2025-07-16 08:15:18
1606
原创 面试算法高频08-动态规划-03
编辑距离问题通过动态规划将复杂的字符串转换问题分解为子问题,利用状态转移方程高效求解。关键在于正确定义状态和转移逻辑,边界条件的处理也至关重要。该解法是此类问题的经典解法,时间和空间复杂度均为多项式级别,适用于大多数实际场景。
2025-04-28 10:21:45
1090
原创 【python】Asyncio包学习18-21
Python的contextvars模块在Python 3.7版本引入,它是为了解决Python异步编程中的上下文变量传递问题而设计的。contextvars模块主要为我们提供了ContextVar类,我们可以使用ContextVar创建一个上下文变量,这个变量可以在同一个上下文中传递,但在不同的上下文中是隔离的。这是非常重要的,因为在异步编程中,很多时候我们需要在不相关的代码之间传递一些信息,比如请求ID、用户身份信息等。var.set('new value') # 在当前上下文中设置var的值。
2025-04-28 09:07:59
902
原创 【python】Asyncio包学习11-17
Python asyncio Semaphore是基于asyncio的协程实现的,它的底层实现原理涉及到协程的调度和计数器的管理。在asyncio中,Semaphore的实现是基于一个计数器和一个等待队列。当一个协程需要获取Semaphore对象时,Semaphore会检查计数器的值。如果计数器的值大于0,说明有资源可用,Semaphore就会将计数器的值减1,表示资源被占用。
2025-04-22 10:15:06
1308
原创 【python】Asyncio包学习6-10
在Python的异步编程模块asyncio中,异步迭代器(Asynchronous Iterators)是一种特殊的迭代器,允许异步生成值。它实现了和方法,其中返回异步迭代器对象本身,返回一个coroutine协程对象,用于异步生成下一个值。异步迭代器工作方式与常规迭代器类似,但允许在迭代过程中异步生成值。当用于async for循环时,会异步生成迭代序列中的每个值,直到没有值可供生成。def __aiter__(self): # 注意__aiter__必须为普通方法。
2025-04-21 09:34:54
1338
原创 【python】Asyncio包学习 1-5
在Python中,异步模式是一种非阻塞式I/O操作的编程模式,可以使用协程(coroutine)来实现。异步模式可以使程序在执行I/O操作时不会被阻塞,从而实现更加高效的并发处理。在Python中,异步模式主要有两种实现方式:asyncio和Twisted。其中asyncio是Python 3.4引入的标准库,而Twisted是一个广泛使用的Python异步网络框架。使用异步模式时,可以使用async/await关键字来定义协程,使用事件循环(event loop)来驱动协程的执行。
2025-04-19 13:04:20
1370
1
原创 面试算法高频08-动态规划-02
给定两个字符串text1和text2,要求返回这两个字符串的最长公共子序列。例如对于字符串 “ABAZDC” 和 “BACBAD”,需找出它们最长的公共子序列。子序列是指在不改变其余字符相对位置的情况下,从原始字符串中删除某些字符(也可以不删除)后形成的新字符串。
2025-04-18 11:06:27
1081
原创 微服务最佳实践:全链路可用性保障体系
流量层通过分级限流与智能负载均衡抵御峰值;逻辑层利用超时、重试、降级实现快速失败与优雅恢复;基建层借助监控、演练、隔离保障全链路可靠;工具层整合开源框架形成自动化防护体系。最终目标是在复杂分布式环境中,以最小成本实现“高可用、可扩展、易维护”,从容应对流量波动、依赖故障、变更风险等挑战。
2025-04-15 12:03:10
1078
原创 面试算法高频07-binary_search
需要找到目标值在有序数组中最后一个出现的位置(如重复元素场景)。场景核心逻辑循环条件关键判断精确查找直接比较中间值,相等则返回target左边界查找寻找第一个大于等于目标的位置,缩小时保留可能的左边界右边界查找寻找最后一个小于等于目标的位置,缩小时保留可能的右边界旋转数组查找判断有序半区,在有效半区内搜索比较二维矩阵查找一维化处理,利用行列有序性映射二维坐标到一维索引。
2025-04-14 10:07:03
1180
原创 面试算法高频06-greedy
最优子结构指:问题的最优解包含子问题的最优解。若子问题的局部最优无法推导全局最优,则贪心失效。贪心选择性质指:通过局部最优选择能最终得到全局最优解。若局部最优可能导致后续无解或非最优,则贪心失效。后效性指:当前决策会改变未来状态,导致后续选择无法补救前期错误。问题无最优子结构:局部最优解不构成全局最优(如非整除硬币找零)。贪心选择性质不成立:局部选择可能排除更优的全局组合(如0-1背包)。存在后效性或负权影响:当前决策限制未来选择或需回溯调整(如负权图最短路径)。目标函数非单维度最优。
2025-04-14 09:04:22
519
原创 [k8s]随笔-typemeta metadata
TypeMeta是资源的“身份证”,定义其类型和版本。metadata是资源的“档案”,包含名称、分类、扩展信息及生命周期管理。设计原则声明式:用户只需定义spec和metadata,系统自动维护status。分层化:通过标签和注解实现资源的逻辑分组与扩展配置。自动化:利用系统自动生成字段(如uid)简化管理。通过合理设计TypeMeta和metadata,可以提高资源的可观测性、可维护性及与工具链的集成能力。
2025-04-13 15:27:07
1156
原创 [k8s]随笔- spec内容整理
path:当前正在构建的括号字符串(如"(()"leftright通过回溯法在生成括号的过程中实时校验有效性,避免了无效路径的搜索,高效地枚举了所有可能的有效组合,是该问题的最优解法。
2025-04-13 15:12:17
1428
原创 面试算法高频05-bfs-dfs
path:当前正在构建的括号字符串(如"(()"leftright通过回溯法在生成括号的过程中实时校验有效性,避免了无效路径的搜索,高效地枚举了所有可能的有效组合,是该问题的最优解法。
2025-04-12 15:45:02
1312
原创 面试算法高频02-树
前序遍历、中序遍历和后序遍历是二叉树的三种常见遍历方式,它们的定义和特点如下:这三种遍历方式都是基于递归的思想实现的,在实际应用中,可以根据具体需求选择合适的遍历方式来处理二叉树相关的问题。同时,也可以通过栈或其他数据结构将递归遍历转换为非递归的形式进行实现。二叉搜索树二叉搜索树(Binary Search Tree,BST) ,也叫二叉查找树、二叉排序树 ,它要么是空树,要么是满足以下性质的二叉树:对二叉搜索树进行中序遍历(左子树 - 根节点 - 右子树 ),会得到一个递增的有序序列 。这种结构在数据
2025-04-04 11:17:09
1105
原创 面试算法高频01
双指针法:通过贪心策略避免暴力枚举,线性时间内找到最优解。移动规则:每次移动较短的指针,确保可能找到更高的柱子。正确性:虽然跳过了部分情况,但最优解一定在移动路径中被覆盖。该解法在时间和空间上均达到最优,是解决本题的经典方法。双指针法:通过j指针记录非零元素的位置,确保非零元素按顺序排列。原地操作:直接修改原数组,避免额外空间开销。高效性:仅需两次遍历,满足题目要求的最少操作次数。该解法在时间和空间上均达到最优,是解决本题的经典方法。动态规划。
2025-04-04 09:55:03
964
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅