val httpResponseFuture: Future[HttpResponse] = http.singleRequest(HttpRequest(uri = uri))
val tokenizationResponse = for {
response <- httpResponseFuture
body <- Unmarshal(response.entity).to[String]
} yield transformResponse(response.status, body, path, response.headers)
akka {
actor.deployment {
/HttpClient {
router = balancing-pool
nr-of-instances = 7
}
}
http {
host-connection-pool {
max-connections = 30
max-retries = 5
max-open-requests = 8192
pipelining-limit = 200
idle-timeout = 30 s
}
}
}
我们尝试在host-connection-pool下调整池、actor实例和所有其他参数的大小,但没有更好的效果。
欢迎任何建议!
不混合匹配并发(&M)
您的查询功能可能只是向执行元
发送一条消息并等待响应:
//what your code may look like now
object Message
val queryActorRef : ActorRef = ???
val responseBody : Future[String] = (queryActorRef ? Message).mapTo[String]
但这是不必要的。在此用例中使用actor
的唯一原因是保护有限的资源。但底层http连接池为您处理资源利用问题。删除Actor中介将允许您单独使用Futures:
val entityTimeout : FiniteDuration = 10.seconds
val responseBodyWithoutAnActor : Future[String] =
http
.singleRequest(HttpRequest(uri = uri))
.flatMap(response => response.entity.toStrict(timeout))
.map(_.data.utf8String)
type Message = ???
val messagesSource : Iterable[Message] = ???
val uri : String = ???
val poolClientFlow = Http().cachedHostConnectionPool[Promise[HttpResponse]](uri)
val entityParallelism = 10
Source
.apply(messagesSource)
.via(poolClientFlow)
.mapAsync(entityParallelism)(resp.entity.toStrict(entityTimeout).data.utf8String)
.runForeach { responseBody : String =>
//whatever you do with the bodies
}
我正在尝试将我的应用程序从apache http组件客户端切换到异步版本。目标是能够处理更多的出站连接(在不久的将来)。请求的负载非常小( 与同步版本的apache超文本传输协议客户端,通过把大约200请求/秒。平均响应时间约为100ms/请求。我在最大180ms后中止请求。 切换到异步后,响应时间增加了20ms/请求。吞吐量也降低到160/秒。中止的请求数量增加了一倍。 这是在对应用程序进行了很
我有一个Web服务,我试图使用以下客户端代码调用它: 在服务器端(Tomcat),webservice实现如下: CxfAdd。java: CxfAddImpl。java: 但是,当我运行客户端代码时,在服务器端我得到以下错误: 似乎我没有发送ws-addressing属性,有人能帮我找出代码中的错误或缺失吗?非常感谢。
通过 DBGp 可以支持调试功能,DGBp 是一种常见的支持多语言和调试器 UI 通信的调试器协议。请参阅交互式调试了解更多细节。在这个页面中列出了一些与 AutoHotkey 兼容的 UI 或“客户端”。 SciTE4AutoHotkey SciTE4AutoHotkey 是一个免费的基于 SciTE 的 AutoHotkey 脚本编辑器. 除了 DBGp 支持, 它还为 AutoHotkey
客户端交互性 所有的WebDAV客户端分为三类—独立应用程序,文件浏览器扩展或文件系统实现,这些分类定义了WebDAV用户可用的功能性。表 C.1 “常用WebDAV客户端”给WebDAV常见软件进行了分类,并提供了的简短描述。 表 C.1. 常用WebDAV客户端 软件 类型 Windows Mac Linux 描述 Adobe Photoshop 独立的WebDAV应用程序 X 图像编辑软件,
2)如果瘦客户机和服务器驻留在不同的主机上,将500个条目保存到两个缓存中需要大约4分钟,这看起来非常糟糕。 即使我们考虑到一些网络延迟,我也无法证明在case2(我们希望采用的实现模式)中这种显著的延迟是合理的。我想知道这是否与我的缓存配置有关,如下所示? 瘦客户端代码: }
客户端模块是一个较复杂的模块,这里包含了集群管理、路由、地址管理器、连接管理器、负载均衡器,还与代理、注册中心等模块交互。