Finagle中的线程池可配置性

时间:2017-09-12 12:11:22

标签: multithreading scala netty finagle

我们假设我有两个Finagle服务,如下所示

val service1: Service[http.Request, http.Response] = ???
val service2: Service[http.Request, http.Response] = ???

我在不同的端口上运行它们

val server1 = Http.serve(":9090", service1)
val server2 = Http.serve(":8080", service2)
  • 来这两台服务器的请求是否会由不同的Netty工作/线程池处理?
  • 如果没有,有没有办法配置Finagle,以便它们由不同的Netty工作者/线程池处理?

1 个答案:

答案 0 :(得分:0)

如果您使用的是netty 3,则可以在管道中设置执行处理程序。

http://netty.io/3.5/api/org/jboss/netty/handler/execution/ExecutionHandler.html

然后将通道管道转换为Finagle Codec,它提供构建器方法来创建堆栈客户端或堆栈服务器,并且只需将netty3线程池大小设置为0,finagle一直在朝着这个用户隐藏netty,这可能是当你想要获得精细控制时,你会感到痛苦。

希望这有效,因为当你可以在单独的jvm实例中运行服务器时,我认为没有理由这样做。