我有一个接收请求的jetty(apache camel)Consumer akka actor,将请求和actorRef句柄一起路由到客户端套接字到正确的" worker actor"为了生成所请求的内容,我将内容作为消息发送回客户端actorRef。
问题是我的程序已经成为带宽限制。虽然akka能够在没有显着负载的情况下提供媒体服务,但它在峰值时大约有800mbps,数据开始在NIC上备份,事情开始崩溃。
我想将我的akka设置扩展到多台机器,以便可以通过多台机器(以及上行链路,NIC)返回数据,但是如果我是正确的,因为套接字存在于入口点机器上,将消息发送到客户端actorRef将通过入口点机器将其路由回来,而不管工作者在哪里。有没有办法使用TypeSafe的akka-camel实现将开放套接字转移到另一台服务器(我认为这称为反向代理)#34;?谷歌没有回复任何有用的东西,但我觉得这可能是一个需要解决的常见问题,所以必须有办法。
答案 0 :(得分:1)
您无法在计算机之间传输套接字,因为在两个指定的主机之间建立了TCP连接。您需要做的是在多台机器上运行服务,以便客户端可以连接到任何一台机器,然后您可以在它们前面放置一个负载均衡器,为客户端提供单个IP。请注意,您的负载均衡器显然需要至少10GB / s的连接,否则您无法赢得任何东西。