【发布时间】:2023-04-01 23:55:02
【问题描述】:
This 文章描述了用于聊天应用程序的 websocket 服务器的外观。我们正计划实施类似的东西;当消息发送到服务器时,它会根据身份验证令牌发送给正确的收件人,并且消息会保存在 mysql 数据库中。
我们最终会将服务器托管在 Google App Engine 上,我怀疑这会导致上述方法出现一些问题,因为这取决于所有客户端都连接到同一服务器,而这可能不是案例,因为将根据需要创建多个实例。有没有办法连接所有实例,这样就不会出现问题(Pub/Sub 可能吗?(但这会导致额外费用)),还是我们应该找到不同的解决方案?
我的一个想法是使用mysql-events 来监视来自 websocket 服务器的 binlog,以便在消息表中创建新行,但我在某个地方读到了不推荐的内容。但我找不到我在哪里读到的,也许这是最好的解决方案。
【问题讨论】:
-
这个问题每周出现几次...... Mysql 是一个关系数据库,而不是消息代理或消息队列。使用为此目的而设计的东西,如 redis 或 rabbitmq,或 gcp 提供的消息代理解决方案之一。
-
很抱歉。我试图搜索类似的问题,但我没有找到任何问题。也许我应该扩大我的搜索范围...无论如何感谢您的建议!
标签: mysql node.js google-app-engine google-cloud-platform websocket