Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在客户机-服务器体系结构中使用Akka和Protobufs_Scala_Tcp_Client Server_Akka_Protocol Buffers - Fatal编程技术网

Scala 在客户机-服务器体系结构中使用Akka和Protobufs

Scala 在客户机-服务器体系结构中使用Akka和Protobufs,scala,tcp,client-server,akka,protocol-buffers,Scala,Tcp,Client Server,Akka,Protocol Buffers,我希望能够将Protobuf编码的消息从用C.NET编写的客户端发送到用Scala编写的远程Akka系统。Akka系统将对消息进行解码、处理并返回Protobuf编码的响应 最简单的方法是什么?我应该使用Akka IO TCP吗 这看起来很合适,但节流和背压方面的内容似乎很低,也很棘手 似乎如果客户端也是用Scala编写的,那么它可以使用Akka远程处理与远程Akka系统通信。但在我的例子中,客户端是用C.NET编写的,所以不清楚该怎么做 有没有人有过类似的构建经验?IO API的级别确实很低。

我希望能够将Protobuf编码的消息从用C.NET编写的客户端发送到用Scala编写的远程Akka系统。Akka系统将对消息进行解码、处理并返回Protobuf编码的响应

最简单的方法是什么?我应该使用Akka IO TCP吗

这看起来很合适,但节流和背压方面的内容似乎很低,也很棘手

似乎如果客户端也是用Scala编写的,那么它可以使用Akka远程处理与远程Akka系统通信。但在我的例子中,客户端是用C.NET编写的,所以不清楚该怎么做


有没有人有过类似的构建经验?

IO API的级别确实很低。你更适合看Akka溪流,它建立在IO库之上,隐藏了背压和其他一些低级概念的复杂性:我们使用Akka Streams来支持一个系统,其中C应用程序将protobuf内容流式传输到Akka Streams服务器,我们在这方面取得了巨大成功。这看起来是一个不错的替代方案。我会试试的,谢谢@cmbaxter这是使用Akka演员的替代方案吗?或者流可以与actor系统一起使用?我已经有了一个actor系统来处理请求,即反序列化protobuf消息。我想我的问题是:我可以只使用流来处理TCP连接/反序列化消息,还是还需要重写现有的actor系统来使用流API?作为流处理的一部分,您肯定可以将数据馈送到actor实例中。您可以首先使用stream-stages映射等反序列化protobuf,然后使用mapsync/mapsyncUnordered执行ask?到一个actor实例,然后在streams代码中将该响应重新转换回protbuf,以便它在传出通道上以字节的形式发送回。