自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Golang 应用的 CI/CD 与 K8S 自动化部署全流程指南

本文详细介绍了如何为 Golang 应用设计和实现 CI/CD 流程,涵盖技术栈选择、容器化、CI 工具配置、K8S 部署及环境隔离策略。首先,选择 Git 作为版本控制工具,GitHub Actions 作为 CI 工具,Docker 和 Harbor 用于容器化和镜像管理,K8S 和 Helm 用于部署。接着,通过编写 Dockerfile 和配置 GitHub Actions 实现自动化构建、测试和镜像推送。K8S 部署部分包括准备部署文件、配置认证,并可选使用 Helm 进行管理。最后,通过命名空间

2025-05-12 18:29:12 876

原创 分布式系统的CAP与BASE:一致性、可用性与弹性的博弈之道

在分布式系统设计中,CAP与BASE不是非此即彼的选择,而是需要根据业务场景动态调整的标尺。代价意识:任何架构决策都有其代价,强一致性意味着更高的延迟,高可用性可能带来数据风险动态平衡:通过分层设计、智能路由等策略,在系统不同模块采用不同策略数据关键性更新频率读取模式容错能力只有深入理解业务本质,才能在CAP与BASE的博弈中找到最佳平衡点。

2025-05-09 15:40:08 714

原创 一文搞懂Rehash

Rehash(重哈希)是哈希表(Hash Table)动态调整容量的核心机制。当哈希表中的元素数量(负载因子)超过预设阈值时,系统会通过扩容/缩容并重新计算所有元素的位置,以降低哈希冲突的概率,维持高效的查询性能。类比:想象一个图书馆的书架,初始有10层,每层只能放5本书。当某层堆满50本书时,查找效率急剧下降。Rehash就像扩建书架到20层,并重新按规则摆放所有书籍,确保每层只有少量书,快速找到目标。Rehash是哈希表的“自我修复”机制,核心在于动态平衡时间与空间:扩容提升性能但增加内存,缩容反之。

2025-05-08 19:16:52 822

原创 Go语言切片(Slice)详解

切片通过封装动态数组提供了灵活的数据管理能力,其核心在于共享底层数组的引用语义和自动扩容机制。理解其底层结构、扩容策略及传参行为,有助于避免常见陷阱(如意外修改共享数据),并优化性能(如合理预分配容量)。与数组的差异主要体现在动态性与内存管理方式上,实际开发中切片使用频率更高。

2025-05-06 17:36:33 388

原创 WebSocket协议核心机制与聊天室系统设计指南

消息区分:依赖应用层协议(如 JSON 中的Type和MsgID),而非 WebSocket 本身。有序性:TCP 保证底层有序,应用层通过长度前缀、序列号、单线程处理等机制确保消息完整和顺序。聊天室设计:核心在于连接管理、消息路由、协议定义和并发处理,结合持久化和安全机制实现可靠通信。通过上述方案,可实现一个基础聊天室系统,进一步优化可考虑分布式部署(如使用 Redis 共享用户状态)、消息压缩(降低流量)、二进制协议(提升性能)等。

2025-04-27 01:18:19 704

原创 设计Cache

【代码】设计Cache。

2025-04-27 00:44:09 349

原创 Channel如何安全地尝试发送数据

方法优点缺点适用场景非阻塞、无 panic 风险无法区分 channel 关闭和缓冲区满非阻塞发送场景select + 超时可设置超时时间无法严格判断是否关闭,可能误判需控制发送超时的场景捕获panic直接检测关闭状态违背 Go 错误处理原则,性能开销大极端异常处理场景设计层面避免关闭后发送从源头解决问题,安全性最高需要良好的并发控制设计所有生产环境核心原则:通过select语句安全地尝试发送,或在设计时确保发送方在channel关闭前停止发送,避免依赖运行时检查。

2025-04-26 17:19:52 357

原创 摩尔投票法详细介绍

适用场景:快速查找绝对多数元素,尤其适合大数据流或内存受限环境。关键点:抵消思想、候选重置机制、结果验证。工业应用:选举计票、日志高频错误分析等需高效统计的场景。

2025-04-26 17:11:20 478

原创 通过监督微调(SFT)提升AI Agent效果的完整指南

监督微调(Supervised Fine-Tuning)是在大规模预训练语言模型(如LLaMA、GPT系列)的基础上,使用特定任务标注数据进行二次训练的过程。其本质是通过有监督学习调整模型参数,使其适应目标任务的分布特征。

2025-04-24 20:22:04 1082

原创 深度解析 LangChain、ReAct、ReROO 架构及其在 AI Agent 中的应用

LangChain:向多模态、低代码化发展,2025 年推出可视化工作流编排工具。ReAct:深度融合强化学习,实现更自主的决策能力。ReROO:支持跨云厂商资源调度,提升异构环境兼容性。总结LangChain 是智能代理的“骨架”,提供模块化工具链;ReAct 是“大脑”,驱动推理与行动协同;ReROO 是“心脏”,确保资源高效利用。三者结合将推动 AI Agent 在医疗、金融、工业等复杂场景的规模化落地。参考文献LangChain 架构与工具集成。

2025-04-24 20:06:37 738

原创 TiDB 深度解析与 K8S 实战指南

TiDB 通过分布式架构、HTAP 混合引擎与云原生支持,成为企业级数据库的理想选择。在 K8S 部署中,需重点关注存储性能、网络延迟与自动化运维。通过 TiDB Operator 与 BR 工具,可实现分钟级扩缩容与秒级故障恢复。优化实践中,结合行列存储特性与 MPP 并行计算,可最大化发挥 HTAP 优势,同时通过资源隔离与监控告警保障稳定性。

2025-04-24 18:28:12 545

原创 Redis分布式锁RedLock机制详解

场景推荐方案注意事项独立多实例环境原生RedLock确保节点独立性和网络低延迟哨兵模式多哨兵组+RedLock需监控主节点切换Cluster模式禁用,改用ZooKeeper避免破坏集群分片逻辑高时钟精度要求场景结合NTP服务同步时钟漂移需小于锁有效期1/3。

2025-04-20 16:52:35 807

原创 彻底讲清楚HTTP/1.1 的管道化(Pipelining)机制

HTTP/1.1 管道化通过严格顺序关联请求和响应,TCP 报文段的序列号是连续的,但响应内容通过或分块编码分割。由于队头阻塞和复杂性,实际应用中 HTTP/1.1 管道化很少启用,而 HTTP/2 通过多路复用和流标识符(Stream ID)彻底解决了这一问题。

2025-04-20 12:28:37 573

原创 DDD架构设计

DDD(Domain - Driven Design)即领域驱动设计,是一种软件开发的方法论,旨在应对复杂业务系统的开发。可以把它想象成盖房子,DDD就像是一套科学的建房方案,让房子既坚固又实用。

2025-04-17 20:16:50 746

原创 Golang GC机制:自动内存管理的秘密

程序运行时会不断创建对象(如变量、结构体),这些对象占用内存。当它们不再被使用时,内存需要被回收,否则会导致。这样一来,程序员无需手动清理仓库,Golang 自动保持内存整洁,让开发更专注于“货物生产”(业务逻辑)!:从“根对象”出发,遍历所有引用链,未被引用的对象视为垃圾。遍历堆内存,释放所有白色对象占用的空间(未被标记为存活)。Golang 的 GC 触发策略以。(内存被无效占用)或。

2025-04-16 19:28:47 617

原创 用户态与内核态多个维度的区别

用户态与内核态的分离是操作系统安全与效率的基石。用户态通过限制权限保护系统稳定性,内核态通过集中管理实现硬件和资源的高效调度。理解二者的差异及交互机制,对开发高性能应用(如减少系统调用)、调试复杂问题(如分析Oops日志)及设计安全系统(如防止权限提升攻击)至关重要。随着软硬件协同设计的发展(如eBPF、DPDK),两者的界限逐渐模糊,但核心原理仍是系统设计的根本。

2025-04-16 18:55:01 569

原创 进程(Process)与线程(Thread)的核心区别

【代码】进程(Process)与线程(Thread)的核心区别。

2025-04-16 12:33:58 574

原创 Golang 的 GMP 协程模型详解

一次性获取多个 G(如 50% 的全局队列长度),减少对全局队列锁的竞争频率。例如全局队列有 200 个 G,则一次取出 100 个,后续调度可直接从本地队列处理,降低锁争用。Golang 的 GMP 模型通过用户态调度、轻量级协程和智能负载均衡,在简化并发编程的同时,最大化硬件利用率。机制,是其高并发能力的核心支撑。,牺牲部分灵活性(如手动控制线程),换取大规模并发的易用性。之间寻找平衡,根据实际负载动态适配。Golang 的并发模型基于。

2025-04-16 11:37:09 717

原创 动态词槽管理系统深度设计

fill:#333;color:#333;color:#333;fill:none;Query文本词槽文本768维语义向量768维语义向量FAISS向量索引Top-K候选结果v′Wp​⋅LayerNormvCLS​Wp​∈R768×256。

2025-04-10 21:22:01 932

原创 领域专用对话大模型深度适配方案

本方案通过创新的混合微调策略,在医疗领域测试中实现关键指标平均28%的性能提升。建议实际部署时采用渐进式更新策略,并建立持续反馈机制优化知识图谱。优化后的LLaMA-2。PTuning提示词。

2025-04-10 19:48:24 797

原创 多模态语义理解引擎深度设计

传统BERT句向量存在各向异性(anisotropy)问题,导致向量空间分布不均匀。

2025-04-10 19:29:20 789

原创 端到端语音识别服务重构方案

本方案通过混合架构实现了精度与效率的平衡,经内部测试,中文场景下WER相对基线系统降低22%,推理耗时减少35%。建议根据实际业务需求调整模型权重分配策略,并持续优化领域自适应模块。

2025-04-10 19:14:31 785

原创 Service Mesh 深度解析与 Istio+Envoy 实现方案

建议生产部署时遵循渐进式原则,从非关键业务开始验证,逐步完善监控告警体系,最终实现全业务服务网格化改造。饱和度 Saturation。延迟 Latency。流量 Traffic。

2025-04-10 18:43:52 1212 1

原创 四种经典限流算法实现与深度解析

限流技术是保障系统稳定性的核心手段,本文通过Go语言实现并深入讲解四种经典限流算法。每种算法都包含实现原理、代码解析和场景建议,帮助开发者选择合适方案。

2025-04-02 15:07:06 402

原创 Spark、Flink 和 TensorFlow 三大分布式数据处理框架对比

优化性能,支持流处理(微批模式)、机器学习(MLlib)、图计算(GraphX)等多种场景。(Native Streaming),并通过流模型模拟批处理。如需进一步了解技术细节或代码示例,可参考各框架的官方文档及上述引用来源。,支持分布式训练与推理。TensorFlow 是。

2025-04-02 09:30:41 735

原创 Redis 的哨兵模式

哨兵模式的灵活性:通过配置多个主节点,哨兵模式可同时满足高可用性和扩展性需求。与Redis Cluster的区别哨兵模式:数据按业务逻辑分片,需应用层路由。Redis Cluster:数据按哈希槽自动分片,无需应用层干预。选型建议优先选择一主多从:数据量较小、业务逻辑简单。选择多主多从:业务线隔离、写性能要求高。选择Redis Cluster:超大规模数据、自动分片需求。通过合理配置,哨兵模式可在保证数据一致性的前提下,有效提升系统的可用性和扩展性。

2025-04-01 14:59:58 469

原创 Redis Cluster 在网络分区场景下的处理机制

Redis Cluster 在网络分区时,

2025-04-01 11:25:47 547

原创 向量数据库选型调研详细报告

在人工智能和大模型蓬勃发展的今天,向量数据库凭借其高效的高维数据检索能力,成为语义搜索、RAG(检索增强生成)、推荐系统等场景的核心基础设施。向量数据库专门用于存储和查询向量,这些向量通常来自对文本、语音、图像、视频等非结构化数据的向量化处理。与传统数据库不同,向量数据库能够处理更多非结构化数据,并通过专门的索引(如k - nn索引)提供向量相似性搜索,还具备管理矢量数据及其他数据类型、工作负载管理、访问控制等数据库功能。随着大语言模型的兴起,向量数据库的需求急剧增长。

2025-03-29 13:44:46 354

原创 如何防御TCP洪泛攻击

TCP洪泛攻击利用了TCP协议的三次握手过程。在正常的TCP连接建立过程中,客户端向服务器发送SYN(同步)数据包,服务器收到后回复SYN-ACK(同步确认)数据包,客户端再发送ACK(确认)数据包,完成连接建立。攻击者通过向目标服务器发送大量伪造源IP地址的SYN数据包,而不完成三次握手的最后一步,使得服务器为这些半开连接分配资源并等待客户端的ACK数据包,从而耗尽服务器的连接资源,导致正常的连接请求无法被处理。

2025-03-27 17:39:14 732

原创 Mulvus向量库数据插入失败排查

在使用 Mulvus 提供的 API 插入数据时,API 会返回相应的结果信息。Mulvus 服务会记录详细的日志信息,可以查看服务日志文件来获取更多的错误信息。确保插入的数据格式正确,例如向量的维度是否与集合定义的维度一致。会返回详细的错误信息,根据错误信息可以定位问题。可以通过查看集合的统计信息来确认插入的数据量是否符合预期。目录下,根据日志中的错误堆栈信息可以进一步排查问题。如果插入的数据行数与预期一致,则说明数据插入成功。可以通过简单的查询操作来验证数据是否成功插入。用于检查插入操作是否成功。

2025-03-18 09:10:25 325

原创 CI/CD构建与注意事项

CI(Continuous Integration,持续集成):是一种软件开发实践,开发团队成员频繁地将代码集成到共享的代码仓库中。每次集成都会通过自动化的构建(包括编译、打包等)和测试来验证,从而尽早发现集成错误。CD(Continuous Delivery/Deployment,持续交付/持续部署)持续交付:是在持续集成的基础上,将经过测试的代码自动部署到预生产环境,保证软件可以随时发布到生产环境,但发布决策通常由人工触发。持续部署。

2025-03-17 16:11:27 978

原创 Milvus 中常见相似度度量方法

在 Milvus 中,相似度度量方法用于衡量向量之间的相似程度,不同的度量方法有不同的特点、优缺点和适用场景。以下是对 Milvus 中常见相似度度量方法的详细介绍以及对应的search参数示例。

2025-03-12 18:16:57 1337

原创 Milvus 的索引

特点:FLAT 是最简单直接的索引方式,它直接存储原始向量数据,不做任何压缩或转换。在搜索时,会对集合中的所有向量进行遍历,计算其与查询向量的相似度。优点搜索结果精确,能保证 100% 的召回率,因为会遍历所有向量。无需额外的索引构建过程,插入数据后可立即进行搜索,使用简单。缺点搜索效率极低,随着数据量的增加,搜索时间会呈线性增长,性能较差。适用场景数据量较小的场景,对搜索效率要求不高,但对结果准确性要求极高。用于验证其他索引类型的搜索结果准确性。search参数示例。

2025-03-12 18:09:41 797

原创 Milvus向量数据库操作的详细输入输出参数说明及示例

以下将详细介绍 Milvus 向量数据库中保存(插入)、删除、查询(query和search)操作的输入输出参数,并给出代码示例。

2025-03-12 17:55:39 845

原创 K8S自动扩缩容实践

HPA:通过调整 Pod 副本数应对流量波动,适合无状态服务。VPA:通过调整 Pod 资源请求优化资源利用率,适合资源需求变化大的场景。两者结合时需谨慎,避免资源调整冲突。

2025-03-12 15:56:14 553

原创 Kubernetes(K8s)集群中使用 GPU

在 Kubernetes(K8s)集群中使用 GPU,需要完成安装驱动、部署插件、配置 containerd、实现 GPU 虚拟化及部分使用等一系列步骤,下面为你详细介绍。

2025-03-10 22:28:52 1687

原创 大模型如何从开始到编译出Engine

【代码】大模型如何从开始到编译出Engine。

2025-03-10 22:16:35 835

原创 三级缓存架构

三级缓存架构是一种通过分层缓存设计来优化系统性能、降低数据库负载、提高数据访问效率的解决方案,尤其适用于高并发、高吞吐量的业务场景(如电商、社交平台、实时推荐等)。其核心思想是通过多级缓存逐层过滤请求,减少对底层存储的直接访问。三级缓存架构通过分层设计平衡性能、一致性与复杂度,是应对高并发场景的经典方案。实际应用中需结合业务特点灵活调整各级缓存策略,并辅以监控工具(如Prometheus + Grafana)持续优化命中率和响应时间。3. 广播失效本地缓存(如MQ通知)2. 读取分布式缓存。

2025-03-10 10:40:22 998

原创 基于 Kubernetes 部署 Sentence Transformers Embedding 模型服务

的详细 YAML 配置示例,包含模型推理 API 服务、资源管理及高可用部署方案。部署采用 FastAPI 框架封装模型,并通过 Kubernetes 提供高并发推理能力。通过以上配置,您可以在 Kubernetes 上快速部署一个高性能的 Sentence Transformers Embedding 模型服务,支持动态扩缩容和资源隔离。以下是一个基于 Kubernetes 部署。

2025-03-09 17:29:28 898

原创 常用中文开源embedding模型应用

以下为你介绍几种常用的中文开源 Embedding 模型,以及它们的输入输出调用方式和代码示例。

2025-03-09 17:21:39 1509

空空如也

空空如也

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

TA关注的人

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