自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈领域驱动设计(Domain-Driven Design,DDD)——从理念到落地,如何驾驭复杂业务系统

本文系统介绍了领域驱动设计(DDD)的核心思想与实践方法。DDD旨在解决业务复杂度攀升时软件系统难以演进的问题,强调让软件模型直接映射业务模型。其核心思想是以领域为中心,区分核心领域与支撑领域,通过限界上下文、通用语言、实体/值对象、聚合等构建块建立准确的业务表达。文章指出DDD不是银弹,最适合业务规则复杂、需求持续演进的系统,并提出渐进式落地路径。DDD的终极价值是保持系统长期可理解、可修改和可扩展,而非追求设计的高级感。

2026-01-22 22:26:30 811

原创 浅谈领域驱动设计(Domain-Driven Design,DDD)—基于 AIOps 项目的落地实践

摘要:本文基于AIOps系统的最小可运行Demo,阐述了领域驱动设计(DDD)在解决运维场景业务复杂性中的应用。系统通过三个限界上下文(告警接入、故障管理、修复执行)实现告警聚合、故障处置和异步修复流程。文章重点讲解了DDD战略设计中的上下文划分与通用语言构建,以及战术设计中的实体、聚合根等核心概念,并提供了可落地的代码结构和工程实现方案,完整展示了如何将业务规则直接映射到代码结构中。

2026-01-22 21:58:08 797

原创 浅谈 kubelet —— Kubernetes 每个节点上的“执行引擎”

Kubelet:Kubernetes节点执行代理的核心角色 摘要: Kubelet是Kubernetes架构中运行在每个节点上的关键组件,作为"节点执行代理"负责将API Server中的Pod期望状态转化为实际运行的容器。其主要职责包括:1) 监听并执行调度到本节点的Pod创建/销毁指令;2) 管理Pod生命周期和健康检查;3) 周期性上报节点和容器状态;4) 作为节点API提供日志/exec/端口转发等操作接口;5) 协调CNI/CSI等插件完成网络和存储配置。kubelet通过CR

2026-01-20 20:33:44 529

原创 浅谈 Kubernetes 节点身份建立过程——kubelet 是如何从“路人”变成“合法 Node”的

Kubernetes节点加入集群的安全流程解析 在Kubernetes集群中,kubelet通过严格的6步安全流程完成身份认证: 获取bootstrap token作为临时凭证 建立TLS连接验证APIServer身份 提交CSR证书签名请求 由控制器自动审批并签发证书 切换为正式证书身份认证 完成节点注册并启用证书自动轮换 该流程基于PKI+RBAC+控制器机制,确保每个节点身份可验证、权限可控且可审计。kubelet从临时身份到正式节点需经过多层安全校验,体现了Kubernetes对集群安全的严格设计。

2026-01-19 22:09:06 606

原创 初探 systemd scope 之 容器的 cgroup.procs / tasks / clone_children / notify_on_release

本文深入解析了Kubernetes容器在Linux内核中的真实运行状态,通过分析systemd cgroup scope下的四个关键文件:cgroup.procs显示容器内进程数,tasks反映线程数量,cgroup.clone_children确保fork不会破坏容器隔离,notify_on_release控制资源回收机制。这些文件共同揭示了容器在系统底层的真实资源使用和生命周期状态,是排查OOM、资源争抢等问题的关键。理解这些底层机制有助于从内核层面诊断容器问题,而不仅停留在YAML配置层面。

2026-01-19 20:07:21 642

原创 浅谈Kubernetes在systemd cgroup模式下的Slice/Scope组织结构

Kubernetes容器资源隔离的可靠性取决于系统cgroup管理的一致性 摘要:在Kubernetes生产环境中,容器资源隔离的有效性关键在于kubelet、容器运行时(containerd/runc)和systemd是否使用统一的cgroup管理体系。本文通过分析systemd下的slice/scope机制,揭示了Kubernetes Pod/QoS/Container如何映射到cgroup层级,包括各层级的创建者和管理范围。通过systemd-cgls命令可以验证集群的健康状态,确保资源限制正确生效。

2026-01-19 19:44:04 740

原创 从应用到安全根:浅谈端侧系统能力、SA 与 REE / TEE 的技术体系

面向端侧操作系统的“系统能力 + 安全内核”团队这类团队通常向上承接各类应用向下掌控系统能力、安全策略、权限模型与硬件隔离。他们关注“谁能调用什么系统能力,能不能调用,怎么安全地调用。,决定的是“系统能做什么”,而不是“业务想做什么”。System Ability 是运行在 REE 环境下的“系统级能力服务”,它本身就是操作系统能力的实现形态。SA 并不是普通服务,而是系统能力本身语音转文字密钥管理身份与设备管理策略校验多设备加环安全能力与权限控制不属于应用层。

2026-01-17 21:58:45 614

原创 Linux 磁盘挂载全流程实战——从新盘初始化到安全开机自启

本文系统梳理了Linux磁盘挂载的标准运维流程,重点强调验证机制与风险规避。流程包括:确认新盘状态、分区、格式化ext4、手动挂载验证、使用UUID配置fstab、执行mount -a校验、重启验证等关键步骤。特别指出常见错误如设备名混淆、文件系统类型不匹配、fstab配置后未验证等风险点,并提供明确回滚方案。核心原则是:通过UUID标识、mount -a模拟启动校验、严格验证后再重启,确保操作可复现、可验证、可回滚,将磁盘挂载风险降至最低。

2026-01-17 14:00:52 617

原创 浅谈在 Kubernetes 中接入昇腾 NPU:ascend-device-plugin-daemonset 解析

本文将围绕 Ascend NPU 在 Kubernetes 中是如何被感知、注册和调度的 这一核心问题,结合真实运维场景,给大家依次介绍:ascend-device-plugin-daemonset 是什么它在 Kubernetes 中扮演什么角色它是如何工作的与 NVIDIA GPU device-plugin 的异同实际运维中必须掌握的检查与排障方法

2026-01-12 20:52:26 761

原创 从“模型路径缺失”到“镜像格式错误”:一次 MindIE 容器部署的完整 Debug 复盘

本文分享了在Ascend MindIE服务部署过程中遇到的三个典型问题及解决方案:1)模型路径空目录导致服务启动失败,通过增加非空判断解决;2)宿主机PATH污染容器环境引发Python参数错误,建议避免传递宿主机PATH;3)Docker镜像名位置错误导致启动失败,强调镜像名必须在command前的语法规则。文章总结了部署经验:脚本应做完整检查、隔离容器环境、打印关键路径。这些案例体现了AI部署中90%问题源于系统工程而非算法本身,为Ascend生态开发者提供了实用排错思路。

2026-01-04 19:45:30 765

原创 构建一个「可安装技能」的智能体——从 Agent Skills 到 ChatGLM 集成的完整实践

本文介绍了一个基于Agent Skills的智能体框架实现,支持技能安装、自动选择和执行。该项目从Claude Docs的Agent Skills概念出发,构建了一个轻量级框架,主要特点包括:1)可安装的技能包结构(包含知识文档、脚本和资源);2)渐进式加载机制节省token;3)集成ChatGLM等大模型进行技能选择和推理;4)安全执行脚本并保留多轮对话记忆。技术实现上采用Python栈,包含技能路由器、执行器和记忆管理等模块,通过结构化技能文档(如PDF处理技能)指导任务流程,比单纯依赖模型推理更稳定可

2025-12-29 20:52:10 1224

原创 浅谈 LightRAG —— 把“结构理解”前移到索引阶段的 RAG 新范式

LightRAG提出了一种创新的检索增强生成架构,将结构理解从推理阶段提前到索引阶段。它通过图结构表达语义关系,用向量检索实现高效访问,采用双层检索机制连接推理与生成。相比传统RAG的扁平化处理和GraphRAG的高成本遍历,LightRAG在索引阶段就完成实体关系抽取和图合并,实现了结构理解与检索效率的平衡。其核心创新包括基于图的语义索引、LLM驱动的语义单元抽取、以及区分高低级查询的双层检索机制。工程实现的关键在于复杂的去重合并处理,通过多阶段规范化确保图索引质量。这种方法在保持向量检索速度的同时,显著

2025-12-16 21:02:44 681

原创 用 LangGraph 从零实现 ReCAP:一个可运行的递归任务规划框架(纯模拟版)

本文介绍了如何使用LangGraph框架实现ReCAP(递归上下文感知规划)范式。ReCAP通过显式递归和任务栈结构,使大语言模型能够处理长链条任务。文章重点讲解了: ReCAP三大核心思想:任务递归拆解、动态修正计划、显式栈管理递归 LangGraph的优势:支持循环、状态流转和可控执行流程 系统架构设计:包含Frame栈帧、GraphState状态管理等关键组件 实现细节:模拟环境动作、任务拆解函数等核心模块 文章提供了一个纯Python实现的"做牛肉汉堡"任务示例,展示了ReCAP

2025-12-10 22:13:14 1136

原创 浅谈 ReCAP(Recursive Context-Aware Reasoning and Planning)——大模型推理与规划的递归范式

摘要: ReCAP提出了一种递归、可回溯、可修正的长链推理机制,使大语言模型(LLM)能像程序一样递归执行复杂任务,并通过环境反馈动态调整计划。其核心是通过**上下文感知规划(π)拆分嵌套子任务,递归任务栈实现深度优先执行,以及反馈驱动的计划修正(ρ)**实现自我修复。相比传统方法(如CoT、ReAct),ReCAP具备层级性、错误恢复能力和结构化上下文管理,显著提升了长链任务的稳定性与可控性。该框架适用于智能体规划、工具编排等场景,为LLM赋予类程序化的推理能力。

2025-12-10 21:28:59 1102

原创 基于 LangGraph 实现具备自我反思能力的智能体——ReflectAgent 实战解析

本文介绍了一种新型问答智能体ReflectAgent的设计与实现。该系统通过三阶段"反思回路"(初始回答→自我反思→改进回答)提升复杂问题的处理能力。核心设计包括:1)使用LangGraph构建状态流程图;2)通过ReflectState结构记录完整思考轨迹;3)结合本地工具(文本分析、质量评估)增强LLM能力;4)采用Step机制实现全过程可审计。文章详细拆解了各节点实现,展示了如何让AI系统具备自我改进能力,为构建更智能的对话系统提供了实践范例。

2025-12-09 21:56:29 943

原创 构建简易可插拔的 LLM 统一网关之——多模型适配

摘要:本文提出了一种支持多厂商大模型调用的统一网关架构(LLMGateway),通过Adapter模式实现API协议标准化。核心设计包括三层结构:业务层调用统一网关接口,网关通过AdapterRegistry路由到具体厂商适配器,各ModelAdapter封装不同厂商API差异。该方案支持模型自动路由、故障降级和动态扩展,解决了多模型API协议不一致、业务代码耦合等问题,并提供了重试机制等通用能力抽象。

2025-12-08 21:50:01 942

原创 浅谈Deep Agents—为什么文件系统正成为下一代智能体的关键能力?

摘要: 大语言模型(LLM)驱动的智能体系统正从浅层工具调用演进为具备深度任务能力的 Deep Agents,其核心突破在于 上下文工程 的优化。智能体失败往往源于上下文管理问题:信息未索引、检索不精准、窗口不足或干扰过多。文件系统 成为关键解决方案,提供四大价值: 无限缓存:存储大文件后按需精准读取,降低Token成本; 外部记忆:支持任务规划、子智能体协作与用户偏好持久化; 结构化检索:通过grep等工具替代低效语义搜索; 自我学习:将对话信息写入文件形成技能库。 Deep Agents 的四大特征包括

2025-12-07 15:29:57 653

原创 构建稳定的大模型对话系统:对话上下文裁剪策略指南(含工程实现思路)

摘要:构建基于大模型的对话系统时,上下文裁剪策略至关重要。随着对话轮数增加,无限膨胀的上下文会导致Token过载、性能下降等问题。有效的裁剪需遵循三个核心原则:永久保留system消息、优先保留最新对话、确保裁剪后从user开始。实现方法包括预留system、从后往前回填消息、清理孤立assistant消息等。合理的裁剪策略能维持模型行为一致性、保证对话连贯性并控制Token成本,是生产级对话系统的关键组件。(150字)

2025-11-22 13:43:09 869

原创 浅谈 Python 的 C3 线性化算法(C3 Linearization):多继承背后的秩序之美

Python 采用 C3 线性化算法解决多继承中的方法解析顺序问题。该算法通过 merge() 合并父类 MRO 列表,遵循三大原则:本地顺序优先、子类优先于父类、保持单调性。C3 能正确处理菱形继承结构,避免父类被重复调用,同时能检测出继承冲突。算法核心是每次从候选列表头部选择"不出现在其他列表尾部"的类加入 MRO。通过具体案例演示了 C3 的计算过程,展示了它如何保证多继承结构的正确性与一致性。当出现无法满足单调性的继承关系时,C3 会直接报错,防止继承体系出现混乱。

2025-11-19 19:35:31 1078

原创 从零解析一个完整的医疗知识图谱问答系统:以 QASystemOnMedicalKG 为例

本文基于医疗知识图谱开源项目QASystemOnMedicalKG,系统梳理了知识图谱问答系统的实现流程。首先通过构建Neo4j图谱存储医疗实体及关系,包括疾病、症状、食物等节点及其关联。问答时采用AC自动机识别实体,通过疑问词判断问题类型,组合后翻译为Cypher查询,最终将结果转换为自然语言回答。文中以"糖尿病症状"为例,展示了从实体识别、问题分类到图谱查询的完整流程,体现了规则与图数据库结合的实用性强、可解释性好的特点。

2025-11-18 19:57:47 1100

原创 Dify 集成自定义 MCP 插件实战

摘要:Dify平台新增对MCP协议的原生支持,开发者可通过该协议扩展大语言模型能力,实现调用外部服务或自定义函数。本文详细介绍了如何从零开发MCP插件:使用fastmcp库创建包含问候和加法功能的MCP服务,测试服务连通性,最终在Dify工作流中集成调用。通过图文展示了在Dify平台添加MCP服务、配置工作流节点的完整流程,验证了模型成功调用MCP工具并返回计算结果。该方案为开发者提供了标准化接口,可灵活封装各类业务逻辑,增强智能体的执行能力。

2025-10-27 19:19:12 2414 1

原创 从 YAML 到动态任务编排—用LangGraph 构建可复用异步工作流引擎

本文介绍了一个基于LangGraph的异步工作流引擎,支持从YAML文件动态加载任务流程并自动执行。系统采用分层设计,将流程描述(YAML)、校验(Pydantic)、执行(LangGraph)和业务逻辑(Tool Registry)解耦,实现声明式编程。关键特性包括:动态节点编排、参数绑定与状态回写、异步并发控制、超时重试机制、故障回退策略以及状态持久化。该设计提供了高扩展性、配置即代码、工业级容错等优势,适用于智能运维、数据分析等场景,并为未来智能体生态预留了扩展空间。

2025-10-25 14:30:05 1276

原创 浅谈 OpenAPI Schema—— 接口契约的标准语言

OpenAPI已成为API接口描述的事实标准,通过JSON/YAML格式定义RESTful API的路径、参数、响应等核心要素。文章以天气查询接口为例,解析OpenAPI规范的结构组成:包括版本声明(openapi)、接口元信息(info)、服务器地址(servers)、路径定义(paths)等关键部分。通过FastAPI实现示例,展示了如何将代码实现与OpenAPI契约保持同步,实现自动生成文档、Mock服务等功能。OpenAPI规范不仅可读性强,还能被各类开发工具解析,是连接前后端、驱动API网关与测试

2025-10-18 11:30:30 1179

原创 在 Dify 中创建自定义工具 —— 以“天气查询服务”为例

本文介绍了如何在Dify平台中创建和使用自定义工具,通过一个天气查询服务的示例演示完整流程。首先使用FastAPI编写HTTP服务提供天气数据接口,然后在Dify中创建自定义工具并定义符合OpenAPI规范的Schema。最后将工具注册到智能体(Agent)中,实现自然语言驱动的天气查询功能。这种方法可以扩展智能体的能力,方便接入各类业务接口、数据库查询和模型推理等功能,构建具有丰富行动能力的工具增强型智能体。

2025-10-18 10:23:01 837

原创 浅谈 TLS / mTLS 握手过程 —— 以 gRPC 安全通信为例

摘要: TLS/mTLS 是分布式系统安全通信的核心技术。本文通过 Python+gRPC 项目实例,详解双向 TLS 握手流程:客户端与服务器通过自建 CA 证书双向验证身份(ca.pem校验server.pem/client.pem),使用 ECDHE 算法协商临时对称密钥,建立加密通道。mTLS 在 TLS 基础上增加客户端证书认证,结合 Casbin 实现应用层权限控制(如校验证书 CN 进行接口授权)。相比单向 TLS,mTLS 提供更高安全性,适用于微服务、金融等内部系统。全文通过交互时序图与对

2025-10-08 17:01:07 1516

原创 浅谈 Protobuf 的二进制编码:<tag + wire_type> + value

Protobuf 编码原理剖析:从字节层面理解数据序列化 本文深入解析了 Protobuf 的高效编码机制,通过两个典型示例(整数150和字符串"hi")展示了其底层实现原理。Protobuf 采用 (tag+wire_type)+value 的结构进行编码,其中 wire_type 决定了值的编码方式。对于 Varint 类型(如整数150),采用7位分组+最高位标志位的可变长编码;对于 Length-delimited 类型(如字符串),则采用长度前缀+内容的编码方式。文章详细演示了

2025-10-08 11:03:50 818

原创 浅谈 gRPC——以 Python 项目 secure_services_py 为例

本文深入解析gRPC框架在微服务架构中的应用,重点介绍其通过HTTP/2、Protobuf和TLS组成的四层架构实现高效安全的远程调用。文章对比了gRPC与传统REST的优势,包括类型安全、性能优化和内置mTLS认证等特性,并结合作者Python项目展示gRPC如何与Casbin授权结合构建完整的安全服务栈。通过分析通信流程和项目实现,阐明gRPC在分布式系统中作为"机器间语言"的核心价值,即提供结构化通信、高性能调用和内建安全三大能力。

2025-10-07 23:51:28 659

原创 浅谈 Protobuf——高效、安全的跨语言通信基石

摘要:Protocol Buffers (Protobuf) 是 Google 开发的高效数据序列化协议,相比 JSON/XML 具有更小的体积、更快的速度和更强的类型检查。文章介绍了 Protobuf 的特性、与 JSON 的对比、编译流程及生成文件解析,展示了其在 gRPC 通信中的核心作用。通过定义 .proto 文件并生成 Python 代码,Protobuf 实现了跨语言的高效数据传输,并与 TLS/mTLS、Casbin 等安全机制共同构建了完整的安全通信链路。其高性能、强类型和可扩展性优势使其

2025-10-07 23:28:50 700

原创 浅谈 Casbin 的三种策略效果(Policy Effect):deny-overrides、allow-override 与 priority

Casbin 是一个通用的访问控制框架,支持多种访问控制模型(ACL、RBAC、ABAC等)和灵活的决策机制。其核心思想基于策略(Policy)和模型(Model)的分离设计,通过动态匹配请求与策略实现授权判断。 Casbin 提供三种主要的效果决策模式: deny-overrides - 拒绝优先,任何 deny 策略将覆盖 allow allow-override - 允许优先,存在 allow 即放行(默认模式) priority(p.eft) - 按优先级字段决定最终结果 选择建议: 严格安全场景使

2025-10-07 16:15:06 758

原创 基于 Python 构建的安全 gRPC 服务——TLS、mTLS 与 Casbin 授权实战

本文介绍了一个基于mTLS和gRPC的安全日志服务系统,实现了分布式环境下的安全通信与访问控制。系统通过根CA签发服务端和客户端证书,建立双向认证机制;使用Casbin进行细粒度权限管理,基于客户端证书的CN字段验证身份;采用gRPC实现高性能通信。文章详细展示了证书体系构建、服务-,-端安全配置、访问控制策略设计以及客户端调用流程,最后提出了日志持久化、动态策略管理等扩展方向。该系统有效解决了微服务通信中的加密传输、身份认证和权限控制三大核心安全问题。

2025-10-07 16:01:33 1348

原创 浅谈 Kubernetes apiserver 使用客户端证书认证的流程

摘要:Kubernetes apiserver 通过 双向 TLS(mTLS) 实现客户端证书认证。流程包括:1)CA 签发客户端证书,apiserver 通过 --client-ca-file 指定信任的 CA;2)TLS 握手时,客户端提供证书并由 apiserver 校验;3)校验通过后,证书中的 CN(用户名)和 O(组)映射为用户身份;4)RBAC 根据身份进行授权;5)记录审计日志。该机制确保只有可信 CA 签发的证书才能访问集群资源。

2025-10-04 21:00:34 472

原创 浅谈 Base64 编码与解码:原理、变体及实践

Base64是一种将二进制数据编码为文本的常用方案,其核心是将输入字节流按6位一组映射到64个可打印字符。标准Base64使用字符A-Z、a-z、0-9、+和/,而Base64url变体则将+和/替换为-和_以适配URL等场景。编码过程遵循3字节转4字符的规则,体积膨胀约33%。解码时需反向操作,通过位运算恢复原始数据。Base64不提供加密,仅解决二进制数据在文本协议中的兼容性问题。工程实践中需注意字符集转换、填充处理以及变体间的互转规则,避免常见误区。

2025-10-03 21:40:21 1359

原创 为什么不存在“完美优化器”?从停机问题看编译器的理论极限

摘要:本文证明了不存在能将任意程序优化为等价最简形式的“完全优化算法”Opt。证明思路是:假设Opt存在,可以通过构造一个程序p_{P,x}来模拟P(x)的行为,然后利用Opt的输出判断P(x)是否停机。若能实现,就与停机问题的不可判定性相矛盾。因此,这种完全优化算法不可能存在,这是计算理论的基本限制。证明过程展示了如何通过程序转化将停机问题归约到Opt的存在性问题。

2025-09-27 12:29:49 1089

原创 基于 ContextVar 的“按请求自动失效”上下文设计(含线程/协程模型)

本文提出了一种基于_thread_recycles和_updates的线程复用上下文管理方案,解决Web应用中线程复用导致的上下文变量串值问题。通过引入"全局页码"机制和变量更新标记,确保每个HTTP请求都能获得干净的上下文环境。关键点包括:(1)使用类级ContextVar记录请求轮次;(2)为每个变量维护实例级更新标记;(3)通过比较标记值判断变量有效性。该方案支持同步/异步框架,并提供了Flask和FastAPI的集成示例,有效解决了多线程环境下请求间数据隔离问题。

2025-09-26 18:43:08 1016

原创 浅谈 Kubernetes 微服务部署架构

本文解析了基于Kubernetes的微服务部署架构,从代码提交到应用上线的全流程。架构包含代码交付流水线、K8s集群调度、外部访问路由和中间件支撑四大模块,通过CI/CD实现自动化部署,利用Service和Ingress提供稳定访问入口,并整合Redis、Elasticsearch等中间件增强系统能力。该架构支持弹性伸缩、高可用等特性,是现代云原生应用的最佳实践方案,可为企业构建微服务体系提供直接参考。

2025-09-23 22:30:43 1176

原创 本地部署Dify时遇到的问题:open conf/config.yaml: no such file or directory & error: operation not permitted

摘要:部署Dify时遇到两个问题:1) sandbox容器因缺少config.yaml文件不断重启,需手动从示例文件创建并放置到指定目录;2) 执行Python代码时报"operation not permitted"错误,需在config.yaml的allowed_syscalls中添加所需系统调用编号。解决方案包括配置基础文件操作、系统控制等常见syscall,并重启容器使配置生效。

2025-09-21 21:27:19 1543

原创 Spring异步编程- 浅谈 Reactor 核心操作符

本文介绍了Reactor响应式编程中的核心操作符,包括zip、merge、concat、flatMap等。重点解析了zip操作符的按位结对和短流优先特性,merge操作符的时间交错合并特点,以及defaultIfEmpty/switchIfEmpty的兜底策略。通过代码示例展示了不同操作符的行为差异,如mergeSequential保证顺序而merge按实际到达时间合并。这些操作符为处理异步数据流提供了灵活的组合方式。

2025-09-15 21:12:39 1017

原创 Java Flow API — Publisher、Subscriber 与 Processor 实战

Java 9引入的Flow API实现了响应式编程规范,包含Publisher(发布者)、Subscriber(订阅者)、Subscription(订阅关系)和Processor(处理器)四个核心角色。示例展示了如何通过三个Processor构建数据处理链:数据从发布者依次经过各处理器加工(添加":flux"后缀),最终由订阅者接收。Processor兼具订阅者和发布者功能,通过request()控制背压机制,实现按需拉取数据。该机制为Java提供了原生响应式流支持,适用于构建异步数据管

2025-09-10 23:10:29 1316

原创 Java 声明式编程- Stream API 实战

Java 8 Stream API 核心解析 摘要:Java 8 引入的 Stream API 通过函数式编程和声明式风格显著提升了集合操作效率。文章系统讲解了 Stream 的三大核心组成(数据源、中间操作、终端操作),详细演示了流的多种创建方式,包括集合转换和并行流处理。重点分析了常见中间操作(filter、map、flatMap等)和终端操作(collect、count等)的使用场景,特别介绍了分组收集器Collectors.groupingBy的实践应用。对比传统迭代方式,阐释了Stream&quo

2025-09-10 22:55:20 1037

原创 Java — Lambda 表达式与函数式接口解析

本文介绍了Java 8引入的Lambda表达式和函数式接口特性。主要内容包括:1)函数式接口的定义(仅含一个抽象方法的接口,可使用@FunctionalInterface注解);2)Lambda表达式的语法与应用,简化了匿名类的写法;3)方法引用的四种类型;4)java.util.function包中常见的函数式接口(如Consumer、Function、Supplier等)及其用法。这些特性显著提升了Java代码的简洁性和可读性,使函数式编程在Java中得以实现。

2025-09-10 22:22:39 544

空空如也

空空如也

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

TA关注的人

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