我正在编写一个网络应用程序,该应用程序有多台机器为不同的客户端提供服务,但机器本身需要频繁地相互通信。假设有多个聊天服务器。从网络架构的角度来看,我如何实现服务器到服务器的通信。我不希望每台服务器都与所有其他服务器建立连接。任何想法、指示或建议都会有所帮助。作为客户端开发人员,我对这些都很陌生。谢谢!
答案1
为什么你不希望每台服务器都与所有其他服务器建立连接?你始终可以在每台服务器上安装 2 个 NIC。一个 NIC 将为客户端提供服务,另一个 NIC 将用于服务器到服务器的通信。另一个选项是创建 VLAN,但我仍然不明白为什么你不希望每台服务器都与所有其他服务器建立连接?
答案2
如果通信不需要即时进行,那么您可以使用中央数据库服务器来存储消息(或正在通信的任何内容),然后其他服务器可以在准备好时获取它们。
另一种方法是使用中央服务器作为交换器,基本上就是等待消息,然后根据需要将其转发到其他服务器上的守护进程。但这种方式比数据库选项复杂得多,因为您必须有适当的方法来确保消息确实被传递,并且当消息无法转发时,必须有某种重试机制。