Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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
.net 每个模块有多个服务器或一个服务器来处理来自多个客户端的请求_.net_Design Patterns_Network Programming - Fatal编程技术网

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

.net 每个模块有多个服务器或一个服务器来处理来自多个客户端的请求,.net,design-patterns,network-programming,.net,Design Patterns,Network Programming,问题: 我们有一个场景,其中: 我们有多个模块(设备、音频、视频)(最多10个?) 连接到指定模块的多个接口客户端(最多2/3?) 我们想知道如何正确管理接口客户端和设备客户端之间的通信。一种解决方案是制作一个服务器管理器,它将处理一个到多个接口客户端的连接和一个到多个模块的连接。但是,我不喜欢它,因为多线程代码应该被管理。图表: 因此,我的建议是建立一个拥有多个服务器的管理器,这样每个模块和指定的接口将成为与具体模块服务器通信的客户端。图表: 哪一个更好,为什么?在我看来,具有多个服

问题:

我们有一个场景,其中:

  • 我们有多个模块(设备、音频、视频)(最多10个?)
  • 连接到指定模块的多个接口客户端(最多2/3?)
我们想知道如何正确管理接口客户端和设备客户端之间的通信。一种解决方案是制作一个服务器管理器,它将处理一个到多个接口客户端的连接和一个到多个模块的连接。但是,我不喜欢它,因为多线程代码应该被管理。图表:

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

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


<> P.>从一个服务或一个服务开始,有很多因素需要考虑。看

但是,我不喜欢它,因为多线程代码应该是 管理

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


假设“应该管理”的代码是由于共享对象而产生的,那么不管怎样,当服务器很少时,您必须处理此管理,而不是同步线程,您将同步服务器。

如果不进行(许多)假设,您的问题将无法得到回答。需要更多关于模块依赖关系的信息。他们是无国籍的吗?你能画出请求的流程图吗?我认为在一篇文章中只有一个问题是很常见的。谢谢你的评论。我已经编辑了描述。当做NP如果我理解正确,您基本上是在问,开始编写基于微服务的应用程序或monolith是否更好?是的。是每个设备都有多个通道通信更好,还是一个通道用于从设备到服务器的通信,另一个通道用于从服务器到每个用户界面的通信更好。谢谢回答。主要关注的是多线程代码中的路由通信。我们有多个并行用户界面,可以在多个设备上调用操作并从它们(或通过服务器缓存)接收状态。您使用哪个框架进行通信?WCF?Web API?经过一些研究,我们将使用信号器。WebSocket非常快。这就是为什么我希望将solution2与多个服务器(集线器)一起使用。好的。我对此不太熟悉。我将删除答案,以便您获得更多有用的信息:)您也可以在上述问题中提及信号员,以获得更多相关的答案。