每个模块或一个服务器的多个服务器来处理来自多个客户端的请求

时间:2017-02-24 14:00:16

标签: .net design-patterns network-programming

问题: problem

我们有一个场景:

  • 我们有多个模块(设备,音频,视频)(最多10个?)
  • 连接指定模块的多个接口客户端(最多2/3?)

我们想知道如何正确管理接口客户端和设备客户端之间的通信。一种解决方案是创建一个服务器管理器,它将处理一个到多个接口客户端的连接和一个到多个模块的连接。但是,由于应该管理的多线程代码,我不是它的粉丝。图: one server

因此我的建议是让一个拥有多个服务器的经理,因此每个模块和指定的接口将是与具体模块服务器通信的客户端。图:

multiple servers

哪一个更好,为什么?在我看来,具有多个服务器的版本将为每个模块分离多线程逻辑。另一方面,我们将有多个连接,但是担心它是一件事吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果从少量服务或一个服务开始,有许多因素需要考虑。见here

  

但是,由于应该是多线程代码,我不是它的粉丝   管理

听起来你的主要关注点是管理每个连接的线程,但我遇到的框架(.NET中的WCF和JAVA中的Spring MVC)允许您通过Configuring每个请求定义一个新线程。你不必自己管理它。

假设"应该管理的代码"是因为共享对象然后无论如何你必须在拥有少量服务器时处理这种管理,而是同步线程,你将同步服务器。