我一直在试图弄清楚如何编写能够满足以下条件的消息传递系统:
我们当前的系统非常低效,并且查询会通过过多的连接来杀死我们的服务器。我正在寻找关于在PHP和MySQL中构建可扩展的线程消息传递系统的概念性建议 - 最好的数据库结构类型,如何存储收件人,查询的最佳实践。有人可以帮忙吗?!
谢谢!
答案 0 :(得分:3)
这听起来像是一个真正的消息排队系统的工作,例如RabbitMQ或任何数量的其他消息队列。在尝试编写自己的代码时,必须完全理解和处理大型复杂问题,这些问题并非易事。至少,为了感受所提供的功能和能力,值得在一两个轮胎上踢轮胎。
一旦您沿着消息队列路线走下去,您将需要研究一个称为发布/订阅的概念,它将使每个订户(或接收者)彼此分离。在此之后,如有必要,可以为每个订户创建数据库表(甚至是完全独立的数据库)。
答案 1 :(得分:1)
似乎启动的地方只是三个表,一个收件人表,一个消息表和一个message_recipient多对多的映射表。像这样:
收件人
消息
message_recipient
确保在message_recipient表的两个字段上创建索引,然后它成为所有消息查询的焦点。
你尝试过类似的方法吗?这是最简单,最直接的。如果这不起作用,可能会调整它。