- 博客(151)
- 收藏
- 关注
原创 【C++项目】微服务即时通讯系统:服务端
本文介绍了聊天室项目的服务器功能设计、微服务拆分、通信接口设计及实现,以及后台服务器的部署。项目采用微服务架构,将功能拆分为网关、用户管理、好友管理、文件管理、消息管理、转发管理和语音转换等子服务,通过 HTTP 和 Websocket 与客户端通信,使用多种框架和库实现服务功能。微服务通信接口详细定义了各子服务的请求响应格式和流程。部署时,利用 Docker 和 docker-compose 实现一键式部署,通过编写 Dockerfile、entrypoint.sh 和 docker-compose.ym
2025-09-20 13:32:15
4346
4
原创 【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
本文介绍了一个基于Reactor模型的高性能HTTP服务器组件实现方案。该项目分为SERVER模块和协议模块两大模块,采用主从Reactor多线程架构,主Reactor负责监听新连接,从Reactor处理IO事件。SERVER模块包含Buffer缓冲、Socket操作、Channel事件管理、Connection连接管理、Acceptor监听管理等子模块,通过Connection实现完整的套接字生命周期管理。项目采用One Thread One Loop思想,每个线程独立处理事件循环,同时支持自定义协议模块
2025-05-29 23:50:20
11520
69
原创 【C++项目】从零实现RPC框架「二」:项⽬设计
本文概述了RPC分布式系统的设计,涵盖基本概念、服务注册发现机制及负载均衡,并详细介绍了服务端与客户端的功能模块,最后展示了系统的三层架构设计。
2025-03-14 00:15:49
6005
93
原创 Pulsar 特性在 AI 场景中的使用
没有意外,随着模型规模的持续增长和应用场景的日益复杂,AI Infra 也自然地从"单体架构" -> "分布式架构"进行演进,例如:在大模型训练和推理阶段,随着模型规模的增长,需要通过多维度并行技术(数据并行、张量并行、流水线并行等)并发使用数百甚至数千个GPU才能满足训练需求;在智能体应用阶段,从能对话、写文案的 Chatbot到如今能自主规划、工具调用、多 Agent 协作,工具越来越智能,调用链也越来越复杂;
2026-01-07 12:43:57
654
1
原创 【C++20】特性解析 (上)
这篇长文系统梳理了 C++20 四大核心特性:Concepts 借编译期谓词让模板接口清晰、错误友好;Coroutines 以无栈协程实现异步暂停-恢复,演示生成器、线程调度与 Echo 服务器;Modules 用“编译一次”替代 #include,大幅缩短构建时间并解耦宏污染;Ranges 提供惰性视图与投影算法,使链式容器操作简洁安全。辅以详尽代码、偏序规则、异常处理及编译器配置,为现代 C++ 高效编程铺就进阶之路。
2026-01-01 17:51:01
1580
2
原创 逐梦编程路——从学生到实习生的技术沉淀
这是一篇真诚朴实的2025年终总结,作者回顾了自己从C++菜鸟到两次实习、坚持写90多篇技术博客的成长历程,坦然分享踩过的坑、熬过的夜和微小的进步,传递出“笨拙但坚持”的普通技术学习者的真实心声。
2025-12-30 20:42:57
2166
27
原创 无缝穿越系统边界:节点小宝4.0如何让我的Mac/iOS像访问本地盘一样操控Windows
本文结合三设备(Windows台式机、MacBook Pro、iPhone 14)使用场景,深度测评节点小宝4.0在跨平台远程访问与文件传输中的表现。通过真实案例和性能数据,展现其在校园网环境下相较传统方案(如SMB、微信、网盘)在速度、稳定性、操作自然度等方面的显著优势,突出其“无缝穿越系统边界”的协同效率价值。
2025-12-25 11:54:16
34348
3
原创 【CMake#1】:CMake 安装快速上手
CMake是跨平台C/C++构建利器,一次编写CMakeLists.txt,即可生成VS、Makefile、Xcode等工程。文章从起源、设计哲学到安装、Hello World实战,带你快速入门现代CMake,告别手写多平台脚本。
2025-12-14 14:31:16
832
3
原创 【Go】反射
Go 的反射机制由 reflect 包提供,核心是两个函数:reflect.TypeOf 返回接口 reflect.Type,描述静态类型信息;reflect.ValueOf 返回结构体 reflect.Value,携带运行时值。功能强大但须区分指针、结构体,多次转换与调用带来明显性能损耗,宜只用于框架、序列化等通用场景。
2025-12-04 10:14:04
3797
2
原创 【Go】异常处理、泛型和文件操作
Go异常靠error逐层返回,panic/recover仅作兜底;1.18起支持泛型,函数、结构体、切片、map均可加类型参数;文件读写提供一次性、分片、缓冲、指定分隔符等多种方式,并支持复制与目录遍历。
2025-12-02 20:53:53
970
1
原创 【Go】 协程和 channel
本文详解Go协程、channel、select及线程安全。先以WaitGroup解决主线程不等协程,展示无缓冲与缓冲channel数据传递,用select多路复用与超时控制。最后剖析并发读写变量与map的竞态,给出Mutex锁与sync.Map两种同步方案,并附完整代码示例。
2025-12-01 21:28:22
920
原创 【Go】结构体、自定义类型与接口
文章介绍了Go语言中结构体、自定义类型和接口的核心用法:包括结构体定义、继承、指针方法、tag标签;自定义类型与类型别名的区别;接口的定义、实现、类型断言及空接口的应用,涵盖JSON序列化、方法绑定等实用技巧。
2025-12-01 15:56:38
3912
1
原创 【Go】环境搭建与基本使用
本文是一站式 Go 入门教程,围绕环境搭建、语法基础、复合类型、控制结构、函数与高阶特性、资源管理六条主线展开。结合大量示例代码,帮助零基础读者快速上手并建立完整语言体系。
2025-11-30 09:29:29
4175
1
原创 LangChain与LangGraph介绍
LangChain把提示词、模型、工具串成链,快速搭AI应用;LangGraph用状态图代替单链,支持循环、分支、长期记忆和人机协同,补LangChain短板,适合复杂流程。
2025-11-22 11:02:59
1852
原创 LangChain-大模型介绍
模型是“数据炼成的规律工厂”。大语言模型借千亿参数、自监督“完形填空”习得通用语言,聊天写代码样样通。嵌入模型把文字转语义向量,支撑搜索推荐RAG。API、本地、SDK三法接入,敏感数据选本地,快速原型用API。
2025-11-18 20:17:25
3595
原创 CANN多核编程终局:同步、规约与全局结果的诞生
先到的人不能先走,必须在集合点等待,直到最后一个人也到达。这样的**规约类(Reduction)**算子,情况发生了根本性的变化。每个核心都像一个高效的独立王国,处理着自己的“一亩三分地”。这标志着一名CANN开发者,从能够实现“组件”,成长为了能够构建“系统”的真正专家。在上一篇中,我们学会了如何将一个大任务分发给所有AICore,实现了宏伟的数据并行。这意味着,所有核心必须以某种方式进行“沟通”和“协作”,将它们各自计算的局部结果,汇总成一个全局结果。它们唯一的“共同广场”,就是速度较慢的。
2025-11-18 12:31:36
571
原创 最后一公里:我的CANN算子“部署”记,从C++代码到PyTorch函数
对于昇腾NPU,这个桥梁就是**torch_npu**插件。我们的任务,就是把我们用C++写的CANN算子,包装成一个符合torch_npu规范的“插件”,让PyTorch能够认识并调用它。
2025-11-18 12:30:47
572
原创 榨干硬件性能:在CANN算子中实现Double Buffering来隐藏数据搬运延迟
这次,我们直奔主题,讲解一个CANN算子开发中,能显著提升性能的高级优化技巧——**Double Buffering(双缓冲)**。这篇文章将全是技术细节、代码逻辑和原理解析。
2025-11-18 12:30:04
609
原创 我的CANN算子开发“炼成记”:从一行代码都不懂到“手撕”Tiling
幸运的是,对于简单的Add算子,训练营提供了模板化的实现,我依葫芦画瓢,修改了一下数据类型和计算逻辑,然后紧张地按下了编译按钮。“算子”,这个词我听过无数次,知道它是构成神经网络的“原子”,是真正执行计算的单元。大厨每需要一个土豆,就亲自跑到遥远的冰库里,拿一个,再跑回来,在菜板上切好,再跑回去放好。我暂停了视频,在网上查阅了大量资料,又结合昇腾的文档,终于,我构建了一个自认为比较贴切的比喻,才算把这个概念彻底搞明白。跟着老师的引导,我创建了我的第一个算子工程——一个最简单的向量加法(Add)算子。
2025-11-18 12:10:44
572
原创 从“算子工匠”到“系统架构师”:我的CANN开发之旅终极复盘
它让我们从一个API的“使用者”,变成了技术的“驾驭者”。这篇文章将不再引入新的技术点,而是站在更高的维度,审视我们整个学习旅程,探讨从一个应用开发者,转变为一个底层系统工程师,所必须经历的思维蜕变。这些工作,与算子核心的计算逻辑无关,但它们决定了一个算子是“代码片段”,还是一个健壮、易用、可维护的“软件产品”。它为我构建的,不仅仅是一个关于CANN的知识图谱,更是一个如何学习和掌握任何一门复杂底层技术的通用“心法”。从“点”到“面”,从“知其然”到“知其所以然”,从“实现”到“交付”。
2025-11-18 12:09:54
577
原创 【C++17】特性解析
C++17 带来 20 余项重大改进:结构化绑定、inline 变量、if/switch 初始化让代码更简洁;optional、variant、any 统一“可能有值”语义;string_view 零拷贝视图;filesystem 跨平台文件系统;并行算法提速;强制省略拷贝、折叠表达式、模板参数推导、嵌套命名空间等全面提升开发效率与运行性能。
2025-11-15 10:28:08
1385
原创 CANN深度实践:从理论到代码的全面解析
CANN是华为AI计算架构,提供ACL接口、ACLNN算子库和自定义算子开发框架。通过资源调度优化、算子融合和内存管理等技术,显著提升AI应用性能,简化开发流程。
2025-11-12 00:11:51
5590
原创 CANN在智能视频分析场景中的实践应用
CANN实践:城市交通监控,车辆识别。ACL+DVPP,推理提速8倍,功耗降60%,开发周期缩40%。
2025-11-10 21:40:37
14533
1
原创 【C++14】特性解析
C++14是C++11后的次要版本,2014年发布,包含改进和修复。主要特性包括变量模板、泛型lambda表达式、函数返回类型推导、二进制字面量、数字分隔符、聚合类默认成员初始化器、标准库新增功能等。
2025-11-05 10:16:59
1262
原创 【C++11】扩展学习
本文介绍了C++11至C++20的新特性,包括constexpr、auto、decltype、强类型枚举、static_assert、std::tuple、模板元编程等,分析了模板元编程的优缺点,并分享了学习心得。
2025-10-31 11:10:48
1555
原创 【C++组件】RabbitMq 安装与使用
本文介绍了 RabbitMQ 的安装与使用,包括其工作原理、安装步骤、客户端库安装及 AMQP-CPP 的使用方法。还提供了基于 C++ 的简单封装示例,方便项目中使用。
2025-08-27 16:47:36
1758
2
原创 【C++组件】ODB 安装与使用
文章介绍了如何在 Linux 系统中安装和使用 ODB(Open Database),一个 C++ 的 ORM 框架。安装步骤包括使用 build2 工具链,安装 ODB 编译器和运行时库,以及配置 MySQL 数据库。文章还提供了 ODB 的基本使用示例,包括定义持久化类、生成数据库支持代码、执行数据库操作等。最后,提供了 ODB 的官网链接供进一步学习。
2025-08-24 17:05:04
1793
原创 【C++库】cpp-httplib与 websocketpp 安装及使用
本文介绍了 C++ 的两个网络库:cpp-httplib 和 WebSocketpp。cpp-httplib 是一个轻量级的 HTTP/HTTPS 客户端和服务器库,支持同步和异步操作,易于使用。WebSocketpp 是一个实现 WebSocket 协议的 C++ 库,支持 HTTP/HTTPS 和 WS/WSS,适用于实时通信场景。
2025-08-23 16:19:54
2092
原创 【C++组件】Elasticsearch 安装及使用
本文介绍了 Elasticsearch(ES)的安装、使用及客户端 API 的二次封装。通过 Kibana 测试 ES,实现索引创建、数据增删查等功能,并提供 C++ 客户端示例代码。希望对读者有帮助。
2025-08-22 19:56:54
1678
原创 【C++组件】brpc 安装及使用
文章介绍了 brpc,一个用 C++ 编写的工业级 RPC 框架,适用于搜索、存储、机器学习等高性能系统。它支持多种协议,包括 HTTP、Redis、Memcached 等,并提供了同步、异步和半同步的客户端调用方式。文章还提供了安装指南、示例代码和封装思想的介绍。
2025-08-20 19:03:08
1374
原创 Redis应⽤-缓存与分布式锁
本文深入探讨了缓存概念、使用Redis作为缓存的优势、缓存更新策略,以及缓存预热、穿透、雪崩和击穿问题。同时,介绍了分布式锁的实现和Redlock算法,旨在优化数据库性能,提高系统并发处理能力。
2025-08-11 20:36:46
1790
1
原创 Redis:集群(Cluster)
文介绍了Redis集群的搭建、使用和维护。包括集群的基本概念、数据分片算法(哈希求余、一致性哈希、哈希槽分区)、基于Docker的集群搭建步骤、主节点宕机处理、集群扩容与缩容操作,以及代码连接集群的方法。通过详细的操作流程和示例,帮助读者理解和实践Redis集群的管理和优化。
2025-08-08 20:52:36
1347
1
原创 【C++组件】Etcd 安装及使用
Etcd 是一个分布式键值存储系统,使用 Raft 算法保持数据一致性,支持服务注册与发现。本文介绍了 Etcd 的安装、配置及使用方法,包括 C++ 客户端 etcd-cpp-apiv3 的安装和使用样例,以及如何封装服务发现与注册功能。
2025-07-31 10:09:54
1387
原创 【C++组件】Spdlog 日志组件的安装及使用
本文介绍了 spdlog,一个高性能、零配置的 C++ 日志库,支持异步日志记录、多种输出目标和丰富的日志格式化选项。相比 glog,spdlog 在同步和异步场景下性能更优,适合对日志性能要求较高的项目。其简单易用的 API 和强大的功能使其成为开发和生产环境中理想的日志解决方案。
2025-07-24 16:03:30
1344
原创 【C++框架】gflags 和 gtest 安装使用
gflags 是 Google 开发的 C++ 命令行参数解析库,支持多种数据类型,提供自动帮助文档和类型安全,支持多平台。安装简单,使用方便,可通过宏定义参数并在程序中访问。
2025-07-18 20:53:39
1327
原创 Redis:哨兵(Sentinel)
本文介绍了Redis Sentinel的概念、部署、命令、客户端和实现原理。Redis Sentinel通过哨兵节点实现高可用性,自动完成故障发现和故障转移。
2025-07-17 21:27:29
2246
1
原创 Redis:主从复制
本文介绍了Redis主从复制的配置、拓扑结构及原理。配置通过`slaveof`命令或配置文件实现。拓扑包括一主一从、一主多从和树形结构。原理涵盖全量复制、部分复制和实时复制。全量复制在首次连接时同步所有数据,部分复制用于网络中断后的数据补发,实时复制通过TCP长连接保持数据一致性。主从复制可解决单点问题,但存在从节点无法自动升级为主节点的缺点。
2025-07-05 19:03:00
1053
4
原创 Redis:事物
Redis事务类似MySQL事务,但无回滚机制,不保证一致性、隔离性和持久性。其通过“事务队列”批量执行操作。主要命令有MULTI开启事务、EXEC执行事务、DISCARD放弃事务、WATCH监控key防冲突、UNWATCH取消监控。
2025-06-26 10:37:01
1077
3
原创 Redis:持久化
Redis有两种持久化方式:RDB和AOF。RDB是内存快照,文件紧凑恢复快,但不适合实时持久化;AOF记录修改命令,有重写机制压缩文件,可实时持久化但恢复慢。两者都用fork创建子进程进行持久化,减少对主进程影响。
2025-06-25 15:09:05
1046
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅