我有一个SOAP web服务,我想知道如何为每个用户保存/记录最后10个请求。每个用户都需要在每个请求中发送他们的user/pass,因此很容易知道请求来自谁。保存了最后10个请求后,我的目标是开发某种页面,允许他们使用凭据登录,并查看原始请求、实际的SOAP消息、http头信息以及我能想到的任何相关内容。
重点是让人们解决他们自己的连接问题,而不是每次他们无法连接时都必须联系我,在格式化他们的请求时遇到麻烦,等等……
我的第一个想法是将所有这些信息存储在内存中的哈希表或其他什么地方,但当我们有成百上千的用户访问web服务时,这可能会出现可伸缩性问题。
我们可以使用我们的数据库来存储这些请求。我可能需要创建一些“缓冲区”机制,只在缓冲区达到一定数量的请求后才更新数据库,而不是每次都命中数据库。有没有现成的库或机制可以做到这一点?
我们不能将这些请求存储在托管web服务的机器上的文件系统上。由于这些请求可能包含敏感信息,因此这是一个我需要解决的业务决策。
或者也许有更好的方法来实现我想要做的事情?
发布于 2010-02-19 03:35:26
我看到了两种选择。
1.-混合你的两种方法:在内存中创建哈希表,当它达到限制(比如1000个请求)时,将它们推送到数据库。这不需要一个特殊的库。hastable是你的内存缓冲区。
2.-设置一个完全不同的进程sniffing the requests,并提供客户端下载数据包捕获(或者自己处理并呈现它们)。这可以说是更多的工作,但将保存请求从应用程序中分离出来。如果负载需要,您甚至可以将嗅探器移动到另一台机器上。
https://stackoverflow.com/questions/2291566
复制相似问题