Multi-Thead多服务器架构

时间:2017-05-25 01:11:48

标签: python multithreading apache sockets

我正处于项目的计划阶段,我必须制作类似会议系统的特殊类型,其中成对的远程计算机可以通过不同的服务器连接和交换数据。

因此,计算机1B和计算机1A可以通过连接到任何服务器来相互通信。例如,计算机1A可以连接到服务器1,计算机1B可以连接到服务器2,然后两个服务器将以某种方式找到彼此并相互连接,以便计算机1A和1B可以通过服务器进行通信。

所有服务器都有一个可以访问的公共数据库,其中包含允许哪些计算机相互通信的信息。

服务器1:计算机1A< ---- socket ---->线程1A< --->数据库

服务器2:计算机1B< ---- socket ---->线程1B< --->数据库

每个服务器侦听传入连接,生成一个线程来处理每个连接。

创建线程时,它必须找到相应计算机的服务器和线程,并连接到其他服务器线程,以便计算机可以通过2个服务器/线程进行通信。

计算机1A和1B可以随机连接/断开连接,也许一台或两台计算机没有连接,但如果两台计算机都已连接,它们应该可以通过2台服务器/线程进行通信。

例如,如果计算机1A想要将数据发送到计算机1B,它通过套接字将数据发送到线程1A,线程1A以某种方式在不同的服务器上找到线程1B并连接到该线程,以便计算机1A和1B可以通过线程进行通信。

我无法确定一台服务器上的线程如何定位并与另一台服务器上的特定线程通信。

可以有数千对计算机不断地连接和断开任何服务器,每个服务器必须能够找到其相应计算机的服务器/线程并连接到它。

由于存在公共数据库,因此当计算机连接到任何服务器时,可能会存储某些信息,如两个线程的服务器/ IP /端口。但由于特定服务器上的所有线程都具有相同的IP /端口号,我不知道如何使用它来区分线程。

不允许轮询。

我已经选择了一种编程语言来编写服务器,但在思考PYTHON上的apache。有人知道如何设计这个吗?

由于

0 个答案:

没有答案