我有一个由 postgres 数据库支持的网站。有多个 Web 服务器,它们维护与每个客户端的持久连接,并且需要通知它们相关事件。来自一个 Web 服务器的更改可能会影响连接到另一个 Web 服务器的用户,因此我需要一些 Web 服务器之间的消息传递层。理想情况下,我想为此使用数据库,以保持简单。
因此,我看到的两种明显的方法是:
1)让网络服务器监听所有事件,网络服务器端过滤对它有用的事件(例如,与它当前有连接的用户有关)。
或者:
2) 为每个连接的客户端动态创建一个监听器,并在客户端断开连接时移除该监听器。
第一种方式意味着大量无用的数据通过网络传输,但网络服务器很容易过滤(简单的哈希图查找)。如果postgres 以我可以随时创建数千(到数万)个侦听器的方式实现,则第二种方式看起来很理想。
顺便说一句,我正在使用最新版本的 postgres
想法?
非常感谢!