如何创建分布式Java服务器

时间:2013-03-06 08:48:19

标签: java udp distributed-computing

您将如何创建分布式且易于扩展的Java服务器。 我创建了一个音频转发器,通过UDP接收和重新发送音频数据包,但我希望能够通过多个服务器平衡用户。 你会建议什么? 服务器的工作方式如下: 用户在房间中注册,然后开始侦听来自服务器的消息或将音频数据包发送到房间。当服务器收到数据包时,它会查找房间内用户的IP地址,然后重新发送音频数据包。

1 个答案:

答案 0 :(得分:1)

假设新房间的创建相对不频繁,即使有很多房间,很多服务器,以及很多寻找房间的客户,我都会推荐ZooKeeper。请执行以下操作:

  • 服务器为每个房间创建一个节点,其房间名称包含服务器地址。您甚至可以保证最多一台服务器声明每个房间(请参阅文档中的锁定配方)。
  • 客户端读取具有所需名称的节点,获取相应服务器的地址。这样的读取操作将在服务器之间进行负载平衡,从而使其可扩展。

作为第二步,您甚至可以通过使用其他(备用?)服务器观看的短暂节点来使您的服务器具有容错能力,并在原始服务器发生故障时声明房间。