REST API调用的Scala ExecutionContext

乔山

在我的应用程序(它是一个HTTP服务)中公开了可以被其他服务使用的几个API的情况下,我不得不调用两个不同的外部服务,即消息服务和另一个REST服务。

我了解对于这些I / O绑定操作,最好使用单独的线程池或ExecutionContext。我正在使用以下内容为我的application.conf中的自定义ExecutionContext创建配置:

execution-context {
  fork-join-executor {
    parallelism-max = 10
  }
}

我有一些问题:

  1. 这会创建10个专用线程吗?
  2. 我怎么知道最大并行度的大小?
  3. 假设我要使用此执行上下文进行REST API调用,应该如何调整大小?
艾文
  1. 这会创建10个专用线程吗?

    关闭,但不完全是。正如你可以读取从阿卡文档,三个属性,parallelism-minparallelism-factorparallelism-max用于计算parallelism,然后将其供给到底层参数ForkJoinPool公式是parallelism = clamp(parallelism-min, ceil(available processors * factor), parallelism-max)

    现在介绍并行性。正如您从文档中看到的那样,它大致对应于“热”线程的数量,但是在某些情况下,可能会产生其他线程。即,当某些线程在ManagedBlocking内部被阻塞时。阅读该答案以获取更多详细信息。

  2. 我怎么知道最大并行度的大小

    这取决于您的用例。如果您为每个任务阻塞一个线程,您期望同时执行多少个任务?

  3. 假设我要使用此执行上下文进行REST API调用,应该如何调整大小?

    同样,您要同时发出几个请求?如果要阻塞线程,并且希望同时进行大量http调用,并且希望尽快对其进行处理,则需要较大的线程池。

    但是,如果您的应用程序发出了许多http请求,为什么不使用现有的库。诸如ApacheHttpClient之类的允许您根据http连接或每个主机的连接配置并行性

    同样,为了从参与者发出http调用,很自然地使用非阻塞的http客户端,例如基于netty的AsyncHttpClient它内部也有线程池(很明显),但是它是固定的,并且此固定数量的线程以非阻塞方式处理任意数量的同时连接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala全局ExecutionContext与ExecutionContextExecutorService

来自分类Dev

Scala,PlayFramework,Mockito,ExecutionContext为null

来自分类Dev

ExecutionContext不会从异步方法流到调用堆栈

来自分类Dev

Scala ExecutionContext作为类或方法参数更惯用吗?

来自分类Dev

ExecutionContextExecutor 的监控队列“scala.concurrent.ExecutionContext.Implicits.global”

来自分类Dev

如何创建一个scala.concurrent.ExecutionContext

来自分类Dev

在调用handleRequest或bind时找不到Silex ExecutionContext :: getValidator()

来自分类Dev

测试API REST SCALA

来自分类Dev

制定REST API调用

来自分类Dev

从REST API调用木偶

来自分类Dev

调用-ResMethod Rest API

来自分类Dev

为什么Scala的Future.onComplete需要一个ExecutionContext

来自分类Dev

scala.js示例应用程序中的“找不到隐式ExecutionContext”错误。

来自分类Dev

找不到隐式的ExecutionContext。您可能会通过喷涂scala

来自分类Dev

当第三方库要求提供ExecutorService时,请使用Scala ExecutionContext

来自分类Dev

Scala-如何调用REST API并在HDFS中另存为json文件?

来自分类Java

403 Forbibben在API REST调用

来自分类Dev

AngularJS调用Rest Api:TypeError

来自分类Dev

动态REST API调用角度

来自分类Dev

GET 调用 rest API 的问题

来自分类Dev

在R中调用REST API

来自分类Dev

多个参数REST API调用

来自分类Dev

从Markdown模板调用Rest API

来自分类Dev

在PHP中调用REST API

来自分类Dev

反应JS Rest Api调用

来自分类Dev

如何保护REST API调用?

来自分类Dev

调试JIRA Rest Api调用

来自分类Dev

验证documentDB REST API调用

来自分类Dev

调用REST api返回FileNotFoundException