一个udp日志小系统

udp日志系统产生原因:

    原先的日志系统是每个线程各自直接写磁盘记录日志(使用write函数), 所以当磁盘容量达到100%时,磁盘不能再写入,工作线程全部阻塞在write函数上,导致工作线程瘫痪,为了避免磁盘100%导致的工作线程瘫痪问题,优化了日志记录方式。

系统的实现方案:一个udp日志小系统

  1.  启动单独的写日志线程,启动udp服务接收来自工作线程的udp消息日志, 然后进行写磁盘操作。

   2. 工作线程首先将要写的日志组装成udp消息,使用sendto函数 发送到日志线程。

这样如果磁盘满了,也只是影响写日志线程,工作线程还是可以不受影响的继续工作,增加了系统的健壮性     

注意点:

    1.   udp  socket 要使用noblock    2. udp服务要绑定127.0.0.1本机地址,发送也使用127.0.0.1地址

 

你可能感兴趣的:(一个udp日志小系统)