【发布时间】:2012-05-15 17:02:06
【问题描述】:
我们想在我们的轴 Web 服务上实现一个重载机制。 基本上,当 TPS(每秒事务数)值达到指定值(例如 100 或 150)时,我们希望拒绝传入的 SOAP 请求。 为此,我们需要计算收到的请求数和发送的响应数。
您能否建议我从哪里开始实施此实施?如何计算请求和响应?
非常感谢, 塞卡
【问题讨论】:
标签: java controls overloading axis
我们想在我们的轴 Web 服务上实现一个重载机制。 基本上,当 TPS(每秒事务数)值达到指定值(例如 100 或 150)时,我们希望拒绝传入的 SOAP 请求。 为此,我们需要计算收到的请求数和发送的响应数。
您能否建议我从哪里开始实施此实施?如何计算请求和响应?
非常感谢, 塞卡
【问题讨论】:
标签: java controls overloading axis
我认为您应该在处理程序中实现消息计数和删除。以下是 Axis 文档中关于如何在 Web 服务中编写和注册处理程序的一个很好的描述:Using handlers in JAX-WS Web services。
基本上,您在代码方面所做的事情:您创建一个实现 javax.xml.ws.handler.soap.SOAPHandler 的处理程序类。在handleMessage(...) 方法中,您计算传入的消息,并且如Javadoc for the Handler interface 所示,如果达到过载限制,则返回false。
希望这可以帮助您入门!
【讨论】:
synchronized 关键字)相比,这些原子类在效率和易错性方面是更好的选择。
volatile 变量也可能就足够了。您将在那里遇到竞争条件,但由于消息的到达无论如何都是不确定的,因此计数或丢失消息应该不是大问题。