<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_73180708的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_73180708</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_73180708]]></copyright><item><title><![CDATA[彻底搞懂 ArgoCD Application 的 path 与自动同步间隔]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/155112383</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/155112383</guid><author>m0_73180708</author><pubDate>Fri, 21 Nov 2025 23:22:18 +0800</pubDate><description><![CDATA[摘要：本文通过排查ArgoCD报错&quot;app path does not exist&quot;，深入分析了两个关键问题：1）spec.source.path实质是Git仓库中的子目录路径，必须严格对应仓库结构；2）自动同步间隔timeout.reconciliation需通过修改argocd-cmConfigMap并重启控制器才能生效。文章详细阐述了ArgoCD的工作流程：从Git拉取代码→进入指定path→生成Manifest→同步到集群，并强调path错误会导致Manifest生成失败。最后提]]></description><category></category></item><item><title><![CDATA[Kubernetes 架构]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/154544290</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/154544290</guid><author>m0_73180708</author><pubDate>Fri, 07 Nov 2025 21:54:55 +0800</pubDate><description><![CDATA[摘要：Kubernetes架构分为控制平面、节点层和用户访问层。控制平面负责集群管理，包括APIServer、etcd、Scheduler和ControllerManager。节点层运行kubelet、kube-proxy和Pod。用户通过kubectl或WebUI提交请求，APIServer接收后写入etcd，ControllerManager监控状态，Scheduler调度Pod到节点，kubelet创建容器，kube-proxy处理网络。系统持续监控并维持期望状态。核心流程是用户请求→APIServe]]></description><category></category></item><item><title><![CDATA[使用 Go SDK 玩转 Docker：从容器到多架构构建]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/152162550</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/152162550</guid><author>m0_73180708</author><pubDate>Sat, 27 Sep 2025 10:53:40 +0800</pubDate><description><![CDATA[本文介绍了使用Go SDK操作Docker的方法，包括容器创建运行、日志捕获、镜像构建推送以及多架构构建。通过github.com/docker/docker/client包，演示了从基础操作到多平台构建的完整流程，适用于CI/CD系统、自动化平台等场景。文章提供了详细的代码示例，涵盖单架构构建、镜像推送以及通过循环构建实现多平台支持的方法，最后指出了该技术在边缘计算等领域的应用价值。]]></description><category></category></item><item><title><![CDATA[RabbitMQ 在实际开发中的应用场景与实现方案]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/151648999</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/151648999</guid><author>m0_73180708</author><pubDate>Sat, 13 Sep 2025 12:03:31 +0800</pubDate><description><![CDATA[RabbitMQ作为高效消息中间件，广泛应用于分布式系统开发。本文结合Go示例，介绍了其核心应用场景：系统解耦（Direct Exchange）、异步处理（Work Queue）、流量削峰（队列缓冲）、消息广播（Fanout Exchange）、延时任务（TTL+死信队列）、负载均衡（Fair Dispatch）、日志监控（Topic Exchange）、分布式事务补偿（可靠消息）和批量处理。关键实践包括消息持久化、手动ACK、幂等消费和监控告警，确保系统可靠性与高性能。RabbitMQ通过灵活的消息模型，]]></description><category></category></item><item><title><![CDATA[RabbitMQ 入门与 Go 语言实践]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/151251647</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/151251647</guid><author>m0_73180708</author><pubDate>Sat, 06 Sep 2025 11:30:30 +0800</pubDate><description><![CDATA[RabbitMQ是一款基于AMQP协议的开源消息队列中间件，核心价值在于解耦、异步处理和流量削峰。其架构采用生产者-交换机-队列-消费者模式，通过交换机类型（Direct/Fanout/Topic/Headers）实现灵活路由。Go语言可通过amqp091-go库操作RabbitMQ，支持连接复用、通道管理和消息发布/消费。死信队列（DLX）机制可收集处理失败的消息，通过配置死信交换机和绑定规则实现异常消息的兜底处理，确保消息可靠性。典型应用场景包括异步任务处理、系统解耦和流量控制等。]]></description><category></category></item><item><title><![CDATA[WSL使用指南]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/151014472</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/151014472</guid><author>m0_73180708</author><pubDate>Sat, 30 Aug 2025 11:29:43 +0800</pubDate><description><![CDATA[摘要：本文介绍如何在 Windows 上使用 GoLand 结合 WSL（Windows Subsystem for Linux）高效开发 Go 项目。主要内容包括：1）安装配置 WSL 2 和 Ubuntu 发行版；2）在 GoLand 中集成 WSL 终端和 Go SDK；3）在 WSL 环境中创建和管理 Go 项目；4）结合 Docker 进行开发调试；5）性能优化与常见问题解决方案。通过 GoLand + WSL 方案，开发者可在 Windows 上享受 Linux 环境的开发优势，同时避免跨平台兼]]></description><category></category></item><item><title><![CDATA[MCP（模型上下文协议）]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/150108580</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/150108580</guid><author>m0_73180708</author><pubDate>Sat, 09 Aug 2025 14:24:53 +0800</pubDate><description><![CDATA[MCP（模型上下文协议）是一种让大语言模型实时调用外部能力的标准化协议，解决模型知识静态化问题。它通过MCP Server提供可调用工具（Tool）、MCP Client作为中间桥梁，实现LLM与外部应用的安全高效交互。工作流程包括：LLM决策调用、MCP执行任务并返回结果、LLM生成最终响应。MCP支持HTTP和WebSocket通信，具有标准化、实时性、可扩展性和安全性优势，适用于天气查询、企业系统调用等场景，使大模型成为能&quot;动手&quot;的智能助手。]]></description><category></category></item><item><title><![CDATA[深入理解 Go 语言垃圾回收机制：三色标记与混合屏障]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/149859199</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/149859199</guid><author>m0_73180708</author><pubDate>Sat, 02 Aug 2025 14:35:14 +0800</pubDate><description><![CDATA[本文深入解析了Go语言的垃圾回收机制，重点介绍了三色标记算法和混合屏障技术。Go使用并发垃圾回收器，通过将对象分为白色、灰色和黑色三类进行标记清除。写屏障和读屏障的引入解决了并发修改导致的标记问题，混合屏障则结合两者的优势，确保回收准确性。文章还通过实例说明了错误回收的场景，并总结Go的GC具有并发、增量、安全的特点，在减少STW时间的同时保证内存管理正确性。理解这些机制有助于编写更高效的Go程序。]]></description><category></category></item><item><title><![CDATA[数据库索引详解：原理、设计原则与应用场景]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/149667609</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/149667609</guid><author>m0_73180708</author><pubDate>Sat, 26 Jul 2025 15:23:57 +0800</pubDate><description><![CDATA[摘要：数据库索引是提高查询效率的数据结构，其设计需遵循特定原则。适合建立索引的字段包括高频查询字段、外键关联字段、排序分组字段和高区分度字段；而不适合的字段则有频繁变更字段、低区分度字段、长文本字段等。索引设计应权衡查询性能与维护成本，优先考虑联合索引，控制索引数量。合理使用索引可避免全表扫描，但过度索引会影响写入性能。核心原则是根据实际业务需求选择恰当的索引策略。（147字）]]></description><category></category></item><item><title><![CDATA[Docker容器原理和启动策略]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/149467158</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/149467158</guid><author>m0_73180708</author><pubDate>Sat, 19 Jul 2025 17:09:32 +0800</pubDate><description><![CDATA[Docker容器是一种轻量级虚拟化技术，基于Linux内核特性实现进程隔离和资源管理。核心原理包括：Namespaces（提供进程、网络等隔离）、Cgroups（限制CPU/内存等资源）和UnionFS（构建分层镜像）。容器启动时由Docker CLI→Daemon→containerd/runC调用内核功能创建隔离进程。Docker支持多种自动重启策略（no/always/on-failure/unless-stopped），通过--restart参数控制宿主机重启后容器的行为。相比虚拟机，容器启动更快（]]></description><category></category></item><item><title><![CDATA[Go语言中的Options模式]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/149300735</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/149300735</guid><author>m0_73180708</author><pubDate>Sat, 12 Jul 2025 21:59:58 +0800</pubDate><description><![CDATA[摘要 Go语言的Options模式通过函数式配置方式优化多参数传递，提升代码灵活性与可读性。其核心是使用结构体存储配置，并通过选项函数（如WithHost、WithPort）动态修改字段，避免冗长参数列表。该模式支持默认值、可选参数和易扩展性，适用于HTTP客户端、数据库连接等场景。优势包括解耦业务逻辑、增强维护性及清晰表达可选配置。示例展示如何用Options模式初始化数据库连接，体现其简洁性和实用性。]]></description><category></category></item><item><title><![CDATA[.golangci.yml文件配置]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/149158562</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/149158562</guid><author>m0_73180708</author><pubDate>Sun, 06 Jul 2025 21:09:54 +0800</pubDate><description><![CDATA[这是一份Go语言代码检查工具的配置文件摘要。文件定义了多维度代码质量检查规则，包括：1) 基础运行配置(5分钟超时，10并发)；2) 启用revive和cyclop等主流linter；3) 详细设置静态检查参数，包含87项SA/S/ST类检查项和11项QF快速修复规则；4) 自定义revive规则，如强制120字符行宽、变量命名规范等；5) 格式化工具启用gofmt/goimports/golines；6) 测试文件(_test.go)自动排除。配置突出对代码规范、潜在错误和性能问题的严格检测。]]></description><category></category></item><item><title><![CDATA[goroot和gopath是干嘛的？]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/149002831</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/149002831</guid><author>m0_73180708</author><pubDate>Sun, 29 Jun 2025 20:06:41 +0800</pubDate><description><![CDATA[作用：它用于指定 Go 的安装目录，Go 工具链（如编译器、go run、go build 等）会通过 GOROOT 环境变量找到 Go 语言的标准库和工具链。默认路径：在安装 Go 语言时，GOROOT 会自动设置为 Go 的安装目录。例如，如果你是通过官方安装包安装 Go，GOROOT 默认路径通常是：注意：你通常不需要手动设置 GOROOT，除非你有特殊的自定义安装。Go 会自动根据安装路径设置 GOROOT。]]></description><category></category></item><item><title><![CDATA[Go堆内存管理]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/148829349</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/148829349</guid><author>m0_73180708</author><pubDate>Sun, 22 Jun 2025 16:47:30 +0800</pubDate><description><![CDATA[Go堆内存管理。]]></description><category></category></item><item><title><![CDATA[操作系统多级存储模型]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/148656962</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/148656962</guid><author>m0_73180708</author><pubDate>Sat, 14 Jun 2025 19:25:34 +0800</pubDate><description><![CDATA[本文概述了操作系统的多级存储模型及其动态切换机制。存储系统通过分级设计平衡速度和成本，关键策略包括：1）硬件控制的CPU缓存机制（Cache命中/不命中及替换算法）；2）操作系统管理的虚拟内存（页表映射、缺页中断处理和页面置换算法）；3）文件系统缓存（Page Cache加速文件访问）；4）应用层缓存（如Redis）。这些机制协同工作，实现大容量存储与高效访问的平衡。]]></description><category></category></item><item><title><![CDATA[Go语言堆内存管理]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/148498985</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/148498985</guid><author>m0_73180708</author><pubDate>Sat, 07 Jun 2025 18:27:18 +0800</pubDate><description><![CDATA[摘要： Go语言的堆内存管理借鉴了TCMalloc的设计理念，采用分层模型管理内存。其核心概念包括：8KB大小的Page作为基本单位；mspan作为多个Page的集合，包含对象分配信息；以及Size Class对对象大小的精细分类。mspan结构体通过allocBits和allocCache实现高效对象分配，采用位图标记空闲对象，并通过缓存优化分配速度。系统将内存划分为不同大小的Object，由mspan管理多个相同大小的Object，实现高效的内存分配与回收机制。这种设计兼顾了内存分配性能和空间利用率。]]></description><category></category></item><item><title><![CDATA[go语言的GMP(基础)]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/148365366</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/148365366</guid><author>m0_73180708</author><pubDate>Sun, 01 Jun 2025 12:54:51 +0800</pubDate><description><![CDATA[摘要 Go语言的并发模型基于GMP调度机制，其中G（Goroutine）是轻量级线程，可实现高效并发；P（Processor）是调度器，负责管理G的执行；M（Machine）代表操作系统线程。GMP的核心特点包括： 动态绑定：M需绑定P才能调度G，P的数量决定最大并行G数量（GOMAXPROCS）。 多级队列：G存储于P本地队列（优先无锁调度）、全局队列及阻塞队列（如I/O等待），优化锁竞争。 负载均衡：通过work-stealing机制，空闲P从其他P偷取G，避免资源不均。 该模型结合用户态调度的轻量性和]]></description><category></category></item><item><title><![CDATA[Go语言Map的底层原理]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/148203586</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/148203586</guid><author>m0_73180708</author><pubDate>Sun, 25 May 2025 13:22:20 +0800</pubDate><description><![CDATA[本文摘要： Go语言中的map是一种基于哈希表的键值对存储结构，具有O(1)时间复杂度的读写操作。其核心特性包括：键必须可比较，并发读写不安全会引发fatal error。实现原理采用哈希桶数组+溢出桶的混合方案，每个桶最多存储8个键值对，使用tophash数组加速查找。当负载因子&gt;6.5时触发双倍扩容，采用渐进式迁移策略分散性能开销。map通过结构化拉链法（桶内开放寻址+溢出桶链表）解决哈希冲突，并支持等量扩容优化热点key场景。扩容时利用哈希值位运算实现高效数据迁移。]]></description><category></category></item><item><title><![CDATA[Kafka Go客户端--Sarama]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/147935266</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/147935266</guid><author>m0_73180708</author><pubDate>Tue, 13 May 2025 22:26:01 +0800</pubDate><description><![CDATA[在Go语言中，有多个Kafka客户端可供选择，其中Sarama、segmentio/kafka-go和confluent-kafka-go是较为知名的三个。Sarama是目前用户数量最多的客户端，最初由Shopify开发，现由IBM维护。segmentio/kafka-go虽然没有显著缺点，但功能相对基础。confluent-kafka-go则需要启用cgo，跨平台支持较差，且不支持交叉编译。 Sarama提供了命令行工具，可以用于简单的消费者和生产者操作。安装Sarama工具时，可以通过设置Go代理来加速]]></description><category></category></item><item><title><![CDATA[Kafka的基本概念和Dokcer中部署Kafka]]></title><link>https://blog.youkuaiyun.com/m0_73180708/article/details/147872260</link><guid>https://blog.youkuaiyun.com/m0_73180708/article/details/147872260</guid><author>m0_73180708</author><pubDate>Sun, 11 May 2025 14:08:57 +0800</pubDate><description><![CDATA[Kafka是消息队列的一种实现，类似的还有RocketMQ 和 RabbitMQ这种形态下，生产者和消费者就解耦了。]]></description><category></category></item></channel></rss>