假设有些事件可能发生(可能性较小),但应将其注册。这是一个仅需调整的数据……以查看发生了什么以及需要更改和改进的内容。

通常,这是在引发异常时或在某些条件通过的情况下在catch块中完成的。

我不想编写shell脚本并从日志中收集数据,因此我可以使用DB并为每个上下文创建一个表,这在大多数情况下是可行的,但是在进一步开发中维护和重构非常不便。特别是因为数据将按RDB类型使用。通常,唯一共享的数据是userId,时间,组成部分以及各种数据,例如fileId,fileSize ||。 elementsCount,计数偏差||等等

或者,我可以为此使用一些nosql存储,这样做也有点用力过大,但是由于数据具有相当的自由类型性质,我想这样会更方便。

您能解释一下如何做吗?这怎么称呼?我认为JMX不能处理这种情况。春季AOP或AOP通常仅处理其分布式性质。

最佳答案

听起来您有两个独立的问题:


我应该如何首先捕获某些事件?
捕获事件后该如何处理?


关于1,是的,AOP是捕获事件的非常普遍的解决方案。我不确定您所说的“ AOP通常只处理这种情况的分布式性质”的意思。关于AOP没有任何内容。对于您的应用程序,您还没有告诉我们足够多的信息,以便任何人说如何尽可能轻松地集成AOP等,但是online提供了许多信息。

关于2,我们在谈论多少数据?您想为每个事件存储多少信息?每个消息有何相似/不同之处?我可能会采用以下方法:


找出在任何给定的秒,分钟,小时,天等期间要保存多少数据。如果数据量足够小以适合您现有的数据库之一,则不要通过引入新技术来使环境复杂化。
可以同步加载数据吗?如果是的话,那很容易。否则,我可能会记录数据,并使用简单的ETL脚本定期将其合并。这可能比设置新的Nosql存储(现在没有在生产环境中)要容易得多,而且便宜得多。
确定要保留的数据。它可能看起来像:id,类型,时间戳,源(例如服务器或应用程序实例),详细信息。详细信息应特定于类型。
确定要对数据运行的查询或报告的类型。
您是否需要构造特定于类型的内容,以便可以进行特定查询?您可以将特定于类型的内容保留在XML或JSON文档中,而仅在特定于类型的报表中对其进行解析吗?或者,您是否需要在查询本身中引用特定于类型的内容?特定于类型的详细信息可能会使查询变得困难,但是在这里,诸如mongodb之类的nosql数据库实际上可能会有所帮助。
找出您的数据保留策略。您可能需要在某个时候清理旧数据。这可能会影响您的存储设计。

09-04 09:44
查看更多