【问题标题】:Configure Jetty OSGi bundle for max number of connection为最大连接数配置 Jetty OSGi 捆绑包
【发布时间】:2013-07-08 23:54:28
【问题描述】:

我们如何将嵌入式 Jetty OSGi Bundle 配置为具有有限数量的 HTTP 连接。即我想限制客户端可以与 Jetty Server 建立的连接数。一旦达到限制,它应该拒绝连接请求。

是否可以通过 OSGi 中的配置管理服务来实现?我们是否有可以在 Jetty Bundle 上设置的属性,例如 http.port 等,我们可以使用它来限制连接数。

【问题讨论】:

    标签: java jetty osgi embedded-jetty equinox


    【解决方案1】:

    我认为没有这样的属性:http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html#configuration-properties

    但是,编写这样的 Servlet 过滤器非常简单。使用 Apache Felix 白板,您可以轻松地将其注册到当前的 Http 服务,因此它也适用于其他人。

    【讨论】:

    • 我正在研究 Equinox 实现,我们已经能够从 java 代码中设置 http.port 等,并通过 configAdmin service.available 属性将其提供给码头包。 help.eclipse.org/indigo/… 有一个名为 CUSTOMIZER_CLASS 的属性,我认为可以使用它,但我不确定它的用法。您是否知道使用 JettyCustomizer/JettConfigurator 并修改连接器以获取关于 equinox 的 acceptQueueSize.pls 指南
    • 您也可以在 Equinox 上使用 Apache Felix 白板和过滤器。这毕竟是 OSGi(尽管它可能取决于您使用的码头,因为过滤器尚未标准化)
    • 嗨,我相信,您提供的 servlet 过滤器建议可以限制/调节请求的数量。但是,我需要严格控制服务器为请求打开的 HTTP 连接的数量(因为在持久连接的情况下,1 个连接可用于多个请求)而不是请求。我们可以使用过滤器控制连接吗?您能否指导我如何在 Jetty 级别限制连接数?
    • 只检查请求的远程主机和远程端口。这使得限制连接数变得微不足道。对于 Jetty,您必须查看源代码。
    【解决方案2】:

    如果您使用pax-web,它使用 Jetty 作为底层 Web 服务器,您可以添加一个 jetty-server.xml 并通过这个配置它。

    【讨论】:

    • 我们没有使用 pax-web。您能通过嵌入式码头帮助 Equinox 实施吗?我一直在研究可用于修改连接器和设置 acceptQueueSize 的 JettyCustomizer。你有同样的想法吗?我想通过 OSGi 的 configAdmin 服务并设置以下属性 help.eclipse.org/indigo/…
    猜你喜欢
    • 2016-03-26
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2015-08-13
    • 2015-05-22
    • 2015-10-04
    • 2023-03-03
    相关资源
    最近更新 更多