【问题标题】:Cometd: specifying max threads in java clientCometd:在java客户端中指定最大线程
【发布时间】:2021-12-08 01:46:52
【问题描述】:

0

cometd 文档说可以在客户端和服务器上设置“最大线程数”属性...但实际上并未提供示例。我知道这不可能是实际的属性名称,因为它包含一个空格,当我搜索“maxThreads”时,我只看到一个服务器属性,它显然是一个不同的属性,因为它具有不同的默认值。

当我检查 javadoc 时,我可以看到 AbstractService 有一个构造函数参数为“maxThreads”,但我看不到 BayeuxClient 的相同。

我错过了什么?

如果重要的话,我们目前使用的是 5.0.9,但一旦我们的兄弟项目升级了他们的 jetty 版本,就应该迁移到 6.x。

(之前发布在 salesforce.stackexchange.com 上没有运气)

【问题讨论】:

    标签: salesforce cometd


    【解决方案1】:

    对于 HTTP:

    int maxThreads = 256;
    
    // Create and configure the HTTP client.
    HttpClient httpClient = new HttpClient(new HttpClientTransportOverHTTP());
    httpClient.setExecutor(new QueuedThreadPool(maxThreads));
    httpClient.start();
    
    // Create the BayeuxClient with the CometD HTTP transport.
    BayeuxClient bayeuxClient = new BayeuxClient(cometdURL, new JettyHttpClientTransport(null, httpClient));
    

    同样,所有与 HTTP 相关(而不是 CometD)的属性都配置在HttpClient 中,例如HttpClient.maxConnectionsPerDestination 等。

    WebSocket 类似;如果使用 Jetty 的WebSocketClient,则将HttpClient(它可能与HTTP 传输共享)传递给WebSocketClient 的构造函数,并在HttpClient 中配置HTTP 属性和WebSocketClient 中的WebSocket 属性。

    【讨论】:

    • 谢谢谢谢谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多