【系统架构设计】事件驱动架构:从消息通知到事件溯源
事件通知、事件携带状态转移、事件溯源三种模式经常被混为一谈,但它们在耦合度、数据一致性、存储成本和调试难度上有本质差异。本文基于 Martin Fowler 的 EDA 分类,拆解三种模式的机制与取舍,分析 Kafka 在事件驱动架构中的角色与局限,讨论事件排序的工程挑战和 schema 演进策略。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 7 篇文章 · 返回首页
事件通知、事件携带状态转移、事件溯源三种模式经常被混为一谈,但它们在耦合度、数据一致性、存储成本和调试难度上有本质差异。本文基于 Martin Fowler 的 EDA 分类,拆解三种模式的机制与取舍,分析 Kafka 在事件驱动架构中的角色与局限,讨论事件排序的工程挑战和 schema 演进策略。
把事件驱动(event-driven)从一个含糊的「炒题材」标签,还原为带有明确触发条件、可交易窗口与统计可检验性的策略族。本文把财报后漂移(PEAD)、并购套利(merger arbitrage)、指数调整(index rebalance)、回购、解禁、宏观日历等事件,按信息传播链统一拆成「事件触发—信息扩散—价格反应—套利窗口—收敛」五个阶段,给出 SUE 计算、事件研究 AAR/CAR 的 Python 实现,以及用 vectorbt 模拟 PEAD 多空组合的端到端流水线。
把回测引擎当成一套工程系统讲清楚:事件驱动架构、撮合保真度、滑点嵌入、多频率多账户、并行加速、回放对账。给出可运行的最小事件驱动回测器与 vectorbt 向量化对照实现。
系统剖析 Nginx 的架构设计:Master-Worker 进程模型的工程细节、epoll 事件驱动机制、Upstream 负载均衡与连接池管理、内存池与缓冲区设计、共享内存与 Worker 间通信,建立 Nginx 从配置到内核的完整理解。
Nginx 用一个进程处理 10 万个并发连接,核心就是 epoll。但 epoll 的 O(1) 性能不是魔法——它用红黑树存储监控集合,用链表收集就绪事件,用回调避免轮询。三个数据结构各司其职,精妙得像一台钟表。
多线程 Libevent 编程实践:异步网络 IO、事件驱动架构与跨平台开发
深度解析C10K到C10M问题的演进,涵盖从select/poll到epoll、io_uring的I/O模型变革,Reactor与Proactor模式的实现,事件驱动架构,内核旁路技术(DPDK),以及Go/Erlang的M:N调度模型,全面剖析现代高并发网络编程的理论本质与工程实践。