我想将个人项目(我是学生)编码为位于2个不同服务器和数据库中的两个cms之间的桥梁。
例如电子商务cms和ERP:我想要同步只是说'订单'表。
但表模式不一样,所以我必须制作一个'兼容性'脚本来更新正确的相应字段。 让我们说它已经完成,我可以在两个方向同步2个表:当在ERP表中写入新订单时,我可以在电子商务表中添加订单。在另一个方向也一样。
但我需要执行我的脚本来实现这一目标。 我可以把脚本放在一个cron作业中,所以它在晚上18点执行,但我希望数据能够实时同步。
这意味着当在ERP表中添加新订单时,另一台服务器上的电子商务表也会更新。在另一个方向也是如此。
我发现的唯一解决方案是发射一些事件。更新ERP表时,将启动脚本并更新电子商务表。更新电子商务cms表后,将启动脚本并更新ERP表。
但它需要两个脚本:双方都有一个脚本......我只希望其中一个脚本。
我怎样才能做到这一点?有没有一种方法/流程可以实时同步它们,只需在双方之一创建一个应用程序
答案 0 :(得分:1)
对两个CMS实例使用相同的数据库。
如果您没有这样做(或使用半实时数据库复制层),那么使它们与低延迟保持同步的唯一方法就是基于事件的消息传递,就像您在帖子中描述的一样。 / p>
不的延迟时间为零 - 您没有事务提交系统,因此在一个CMS执行某项操作之后,在另一个CMS看到之前有一段时间。这是否会导致问题取决于您的特定用例。
同样,正确的方法是让两个前端共享一个后端。
答案 1 :(得分:1)
如果您使用的是使用不同语言编写的两个CMS,则可以通过为两个CMS设置简单的REST API来解决此问题。因此,当更新任一CMS时,会通过请求更新将呼叫发送到其他CMS API。
我不确定您是使用预先存在的CMS还是自己编辑,但是您应该搜索“rest API in PHP”
答案 2 :(得分:1)
你提议的内容存在很多问题,这使得它变得不切实际。您似乎希望在实时中在两个完全不同的CMS系统之间联合内容。每个从另一个获取RSS将处理联合(但您必须处理仅仅是更新的更改,因此不仅仅是插入新内容的情况)但是这不会在服务器之间实时执行
世界充满妥协,我认为你必须首先考虑妥协“实时”......