在 apache 中,有一个服务器状态页面,它告诉我服务器的当前状态。特别是,它告诉我当前正在处理的请求数(“当前”,如访问服务器状态页面时)。有什么方法可以在 Netty 中找到相同的结果吗?
问问题
157 次
1 回答
1
它不是内置的,但从概念上讲它很容易实现(或者很容易描述,无论如何;))
- 创建一个可共享的 ChannelHandler:
- 实现ChannelUpstreamHandler
- 实现ChannelDownstreamHandler
- 在FlightRequests中添加一个AtomicInteger字段,该字段向上递增,向下递减。
- 通过 JMX公开inFlightRequests,以便您可以监控该值。
- 您还应该在 SimpleChannelUpstreamHandler.exeptionCaught回调中减少inFlightRequests 。您可能想要添加一个错误计数器,如inFlightRequests计数器,该计数器在捕获的异常时递增。
- 将 [same] ChannelHandler 实例添加到所有创建的管道作为第一个处理程序。
于 2013-05-21T19:09:09.383 回答