gpt4 book ai didi

java - RESTEasy 客户端代理开销?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:11 25 4
gpt4 key购买 nike

我正在使用客户端代理创建一个 RESTEasy 服务,到目前为止它运行良好。但是,我确实注意到在我的一些函数中我看到了同一行代码:

MyClass client = ProxyFactory.create(MyClass.class, "http://localhost:8080");

将其从函数中取出并使其成为类的成员变量以减少可能的开销是否更好?该服务将处理 10000 个请求/分钟的负载。谢谢

最佳答案

例如,您可以将 MyClass 客户端指定为 spring bean,并将其注入(inject)到需要的地方。请注意线程安全,因为 RestEasy 代理客户端在 Apache Commons Http Client 下使用,默认情况下使用非线程安全的 SimpleHttpConnectionManager。

要在多线程环境(在 Servlet 容器中运行)中实现此目的,请执行以下操作:

MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient httpClient = new HttpClient(connectionManager);

// Only needed if you have a authentication
Credentials credentials = new UsernamePasswordCredentials(username, password);
httpClient.getState().setCredentials(AuthScope.ANY, credentials);
httpClient.getParams().setAuthenticationPreemptive(true);

clientExecutor = new ApacheHttpClientExecutor(httpClient);

MyClass client = ProxyFactory.create(MyClass.class, "http://localhost:8080", clientExecutor);

关于java - RESTEasy 客户端代理开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com