分布式系统设计问题-Scala
Questions on Distributed System Design - Scala
我打算用多台机器实现排序(分布式排序)。
我将使用 Scala 对其进行编码。因为我对网络编程经验不多,所以需要大家帮我选择用什么库和方法来实现机器之间的通信:
1/ 有多少台机器可以使用消息进行通信(这将像 Scala 中的案例 class 一样实现)?我可以使用 ServerSocketChannel 吗?或者我应该为每台机器建立一个 TCP 服务器?我需要序列化和反序列化我的对象消息吗?如果需要,我可以使用 protobuf 吗?
2/ 如何通过网络发送数据?我应该使用 java.io 还是 java.nio?
我需要使用尽可能少的依赖项来构建我的项目。
非常感谢。
我将从最简单的高级消息传递库开始,既然您选择了 Scala,我将从 Akka 开始,它是为 Scala 设计的。
How many machines can communicate using Message
您可以与您可以连接的每台机器进行通信,例如整个互联网。
If needed, can I use protobuf for doing that?
我怀疑你不需要,但是是的。
How can I send data via network?
我会使用消息库
Should I use java.io or java.nio?
消息传递库可能会使用这些,但我不认为您需要直接使用它们。
I am going to implement sorting using many machines (distributed sorting).
已经有为 Scala 设计的库可以做到这一点。我会使用其中之一,例如Spark 或 Hadoop。
我打算用多台机器实现排序(分布式排序)。 我将使用 Scala 对其进行编码。因为我对网络编程经验不多,所以需要大家帮我选择用什么库和方法来实现机器之间的通信:
1/ 有多少台机器可以使用消息进行通信(这将像 Scala 中的案例 class 一样实现)?我可以使用 ServerSocketChannel 吗?或者我应该为每台机器建立一个 TCP 服务器?我需要序列化和反序列化我的对象消息吗?如果需要,我可以使用 protobuf 吗?
2/ 如何通过网络发送数据?我应该使用 java.io 还是 java.nio?
我需要使用尽可能少的依赖项来构建我的项目。 非常感谢。
我将从最简单的高级消息传递库开始,既然您选择了 Scala,我将从 Akka 开始,它是为 Scala 设计的。
How many machines can communicate using Message
您可以与您可以连接的每台机器进行通信,例如整个互联网。
If needed, can I use protobuf for doing that?
我怀疑你不需要,但是是的。
How can I send data via network?
我会使用消息库
Should I use java.io or java.nio?
消息传递库可能会使用这些,但我不认为您需要直接使用它们。
I am going to implement sorting using many machines (distributed sorting).
已经有为 Scala 设计的库可以做到这一点。我会使用其中之一,例如Spark 或 Hadoop。