Php 如何使用RabbitMQ在3层体系结构中存储表单数据

Php 如何使用RabbitMQ在3层体系结构中存储表单数据,php,wordpress,integration,sugarcrm,suitecrm,Php,Wordpress,Integration,Sugarcrm,Suitecrm,因此,在我的测试项目中,我使用了3个系统: 前端=>WordPress表单 后端=>SuiteCRM 集成=>中间件(RabbitMQ) 我有一个所谓的“人”,可以在WordPress网站上注册一个活动 单击按钮后,我想要实现的是将表单数据发布到我的CRM工具中: 这意味着我的CRM的数据库表“registered_users”将填充表单的数据。(表已创建,列与表单匹配) 我的问题是: 使用中间件RabbitMQ是否就是我努力追求的目标?RabbitMQ是否可以用于传输PHP变量并将其存储在数据

因此,在我的测试项目中,我使用了3个系统:

  • 前端=>WordPress表单
  • 后端=>SuiteCRM
  • 集成=>中间件(RabbitMQ)
  • 我有一个所谓的“人”,可以在WordPress网站上注册一个活动

    单击按钮后,我想要实现的是将表单数据发布到我的CRM工具中:

    这意味着我的CRM的数据库表“registered_users”将填充表单的数据。(表已创建,列与表单匹配)

    我的问题是:

  • 使用中间件RabbitMQ是否就是我努力追求的目标?RabbitMQ是否可以用于传输PHP变量并将其存储在数据库中
  • 如果是,我的方法是集成这个中间件软件吗
  • 这个主意好吗?RabbitMQ能够做到这一点吗
  • 除了使用类似RabbitMQ的软件之外,还有什么好方法可以解决我的问题
    您可以使用RabbitMQ做您想做的事情,但是您需要的体系结构比您建议的略多

  • 用户单击表单上的提交,并将其发布到web服务器
  • Web服务器捕获表单提交并创建JSON文档
  • Web服务器通过RabbitMQ发布JSON文档
  • 后端服务使用JSON文档并更新数据库
  • 关于PHP的基本RabbitMQ教程应该让您开始学习:

    您正在专门查找工作队列:

    您可能想从James Titcumb(又名“asgrim”)中查看这些PHP和RabbitMQ资源

    还有一些我自己的书,还有一本关于PHP和RabbitMQ的书


    您可以使用RabbitMQ做您想做的事情,但是您需要的架构比您建议的略多

  • 用户单击表单上的提交,并将其发布到web服务器
  • Web服务器捕获表单提交并创建JSON文档
  • Web服务器通过RabbitMQ发布JSON文档
  • 后端服务使用JSON文档并更新数据库
  • 关于PHP的基本RabbitMQ教程应该让您开始学习:

    您正在专门查找工作队列:

    您可能想从James Titcumb(又名“asgrim”)中查看这些PHP和RabbitMQ资源

    还有一些我自己的书,还有一本关于PHP和RabbitMQ的书


    这是对“中间件”一词的不当使用。在任何情况下,RabbitMQ(与所有队列一样)都采用某种形式的消息。随后,一个或多个消费者处理一条消息,并将其从队列中删除。问题似乎更像是它要求的。当存在异步流时,队列非常有用,并且在某些场景(路由、重播、负载缓冲)中可以提供许多优势。然而,这并不是所有问题的正确解决方案。在任何情况下,RabbitMQ都会这样:1)用户按下提交表单的客户端(web浏览器)上的按钮;2) 前端web应用程序(如PHP)向Rabbit Exchange发布一条包含所需信息的消息;3) 消费者应用程序侦听来自rabbit的队列,并在接收特定消息/数据时“做一些事情”(无论应该做什么)。将消息视为JSON文本(RabbitMQ允许任何数据,但..)。消费应用程序只知道消息和任何本地上下文中的内容。使用者不知道发布者中存在哪些变量,除非这些变量已转换为消息中的信息。例如,JSON消息可以从相关的注册表单信息中构建。当然,它可以做任何它想做的事情。这是对术语“中间件”的拙劣使用。在任何情况下,RabbitMQ(与所有队列一样)都采用某种形式的消息。随后,一个或多个消费者处理一条消息,并将其从队列中删除。问题似乎更像是它要求的。当存在异步流时,队列非常有用,并且在某些场景(路由、重播、负载缓冲)中可以提供许多优势。然而,这并不是所有问题的正确解决方案。在任何情况下,RabbitMQ都会这样:1)用户按下提交表单的客户端(web浏览器)上的按钮;2) 前端web应用程序(如PHP)向Rabbit Exchange发布一条包含所需信息的消息;3) 消费者应用程序侦听来自rabbit的队列,并在接收特定消息/数据时“做一些事情”(无论应该做什么)。将消息视为JSON文本(RabbitMQ允许任何数据,但..)。消费应用程序只知道消息和任何本地上下文中的内容。使用者不知道发布者中存在哪些变量,除非这些变量已转换为消息中的信息。例如,JSON消息可以根据相关的注册表信息构建。当然,它可以做任何它想做的事情。1个或更多工作人员并不重要。您正在使用的基本模式是worker模式。它允许您根据需要进行扩展,但不要求您拥有多个工作实例。我推荐这种方法,因为它可以让你在需要的时候成长。一个更简单的方法,比如第一个教程,可以完成任务,但是在你前进的过程中会很快遇到限制。哦,好的!!现在使用工作者模式是合乎逻辑的!非常感谢你!一个或多个工人并不重要。您正在使用的基本模式是worker模式。它允许您根据需要进行扩展,但不要求您拥有多个工作实例。我推荐这种方法,因为它可以让你在需要的时候成长。一个更简单的方法,比如第一个教程,可以完成这项工作,但很快就会遇到限制