gpt4 book ai didi

logging - 最小开销分布式事件日志库/框架?

转载 作者:行者123 更新时间:2023-12-04 19:24:06 34 4
gpt4 key购买 nike

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

事件记录工具应该尽可能接近于事件引发器的零开销,应该容纳结构化信息(与文本日志消息相反),并且应该支持分布式部署(许多盒子抛出许多事件)。

在过去,我们有一个基于 UDP 的系统运行良好,因为我们对系统有很好的控制(最小化数据包丢失)。偶数抛出者会发射 UDP 数据包,这些数据包会被其他盒子捕获并记录在日志中。我正在寻找类似的东西,希望是开源的,现成的,并且可以在更通用的网络中部署。或者,我愿意接受有关如何构建这样的东西的建议。

这应该适用于多种语言,但主要针对 Java 和 Python。参与(事件抛出)应用程序会有所不同;有些是网络应用程序,有些是面向批处理的应用程序。结果可能存在于 Hadoop/HDFS/HBase 中。

最佳答案

如果您想使用 UDP 路由(因为您似乎对此感到满意)并且 Java 是一个选项,那么请查看 Log4j以及它通过 Log4j UDPAppender 对 UDP 传输的支持.

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

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

关于logging - 最小开销分布式事件日志库/框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1022054/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com