【发布时间】:2010-09-10 04:35:41
【问题描述】:
目前我们正在将所有 SOAP 请求保存到一个日志文件中(滚动,每天一个)。当我收到关于谁做了什么、什么时候、多久做一次等的请求时,我需要借助繁重的文本操作来提取该信息。我的想法是将这些 SOAP 请求保存到我可以执行一些查询的数据库中。
SOAP 请求由标头和信封组成。标题中是调用操作的用户名。在信封的主体中,第一个元素是 WS 方法名称,然后是方法的所有参数。每个 WS 方法显然有不同的参数:
- SOAP 请求
- 信封
- 标题
- 用户名 = XXX
- 身体
- WS 名称
- WS 参数(方法之间不同,分层)
- WS 名称
- 标题
- 信封
我想构建这样的查询没有太多困难:
- 特定时间段内调用了用户 XXX 的哪些 WS 方法
- 每个 WS 方法的调用频率
- 显示向 WS XXX 发出的所有请求,其中 WS 的特定参数为 YYY(例如,每次调用“changeParty”,其中partyId = 123)
这是否非常适合“数据库的文档存储类型”/NoSQL,例如 CouchDB/MongoDB?这会很难设置吗?任何替代建议/建议/想法?
谢谢!
编辑:
- 在大多数情况下,我认为我可以使用以下索引:用户、WS 方法、requestDate。任何其他字段都可能不会被索引(尽管我会对它们进行一些过滤)。由于它仅用于审计目的,因此不必非常快。
- 我正在考虑将 NoSql 服务器放在我们拥有的怪物应用服务器上,并让“真正的底层”数据库 (DB2) 摆脱任何类型的日志记录,因为它的使用量非常大。
【问题讨论】: