项目背景:模拟工业互联网边缘侧场景,需要解决高并发数据采集、处理与持久化的问题。 架构设计:采用了 Reactor 模式 结合 多线程并发模型(半同步/半异步模式)。 I/O 层:使用 epoll 的 ET 边沿触发 模式配合非阻塞 I/O,实现了单线程处理高并发连接,解决了传统阻塞 I/O 的性能瓶颈。 计算层:设计了基于 环形缓冲区 的线程池。主线程只负责收发,业务逻辑交给线程池,通过互斥锁和条件变量实现生产者-消费者模型,避免了业务逻辑阻塞网络 I/O。 持久化层:实现了 双缓冲异步日志系统。前台线程写内存,后台线程写磁盘,并实现了基于阈值的缓冲区交换策略和超时刷盘机制,将磁盘 I/O 对系统性能的影响降到了最低。 监控层:通过解析 Linux /proc 文件系统,实时监控进程资源占用,实现了系统内省。 难点攻克: 在日志系统中,解决了多线程竞争问题,并设计了合理的缓冲区交换策略,平衡了实时性与吞吐量。 实现了基于信号处理的优雅关闭机制,确保系统退出时数据零丢失。