最小的开销分布式事件记录库/框架?

Par*_*and 5 logging

我们想保留系统中所有重大事件的记录.例如,在数据库可能存储当前用户状态的情况下,事件日志应记录对该状态的所有更改以及更改发生的时间.

事件日志记录工具应该尽可能接近零开销,应该容纳结构化信息(而不是文本日志消息),并且应该支持分布式部署(许多框抛出许多事件).

在过去的生活中,我们有一个基于UDP的系统运行良好,因为我们可以很好地控制系统(最小化数据包丢失).偶数投掷者将触发将被捕获并记录在其他盒子上的UDP数据包.我正在寻找类似的,希望开源的,现成的,并可在更一般的网络中部署.或者,我愿意接受有关如何构建此类内容的建议.

这应该适用于多种语言,但主要针对Java和Python.参与(投掷事件)申请会有所不同; 有些将是网络应用程序,其他将是面向批量的应用 结果可能会存在于Hadoop/HDFS/HBase中.

Bri*_*new 3

如果您想走 UDP 路线(您似乎对此很满意),并且 Java 是一个选项,那么请查看Log4j及其通过Log4j UDPAppender对 UDP 传输的支持。

LoggingEvent 将采用 java.lang.Object 作为消息,因此它非常通用,您可以将任何您想要的数据放入其中。如果您要通过网络,它应该(很可能)是可序列化的,并且考虑到您需要 UDP,应该具有相应的大小 - 64k 或更少,然后取决于传输层)。您只需在服务器端拦截 LoggingEvent,然后按照您想要的方式处理它。

请注意,UDP 附加程序是Log4j 的配套组件,您必须自己构建它。但这是微不足道的。