谁还需要 Kafka 啊?我用两个 UNIX 信号手捏了一个消息队列!

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

该程序是一个消费者,监听UNIX信号SIGUSR1和SIGUSR2,通过接收信号将其转换为字节并拼接成消息,直到收到全为0的字节表示消息结束。

🎯

关键要点

  • 该程序是一个消费者,监听UNIX信号SIGUSR1和SIGUSR2。
  • 通过接收信号将其转换为字节并拼接成消息。
  • 收到全为0的字节表示消息结束。
  • 程序启动时打印进程PID,以便发送端知道目标进程。
  • 注册通道以截获SIGUSR1和SIGUSR2信号。
  • 根据接收到的信号拼接字节,使用累加器和位置变量。
  • 当累加器收集满8个比特时,检查是否为全0字节以判断消息结束。
  • 如果不是全0字节,则将其存入缓冲区并实时打印。
➡️

继续阅读