【问题标题】:Synchronization across different systems跨不同系统同步
【发布时间】:2022-01-17 21:53:11
【问题描述】:

我有 2 个系统,我们称它们为 i 和 j。每个都有自己的数据库。

每个都有一个注册页面,其中一个用户被插入到一个用户表中。

同步两个表的最佳方式是什么,如果任何用户在系统 i 注册,它也会在系统 j 注册。

注意事项:

  1. 我无法直接从其他数据库中读取。
  2. 如果需要,我可以对代码进行一些小的更改,这不会影响系统性能或自然行为。
  3. 如果需要,我可以为这两个系统创建 API。
  4. 如果需要,我可以添加任何表格或字段。
  5. 我可以创建任何 cron 作业,除非它会影响系统或服务器的性能。
  6. 我正在使用 cPanel。

技术:

  1. MySQL
  2. PHP
  3. REST API 的

【问题讨论】:

  • 为什么是 2 个系统?说真的,这似乎造成的麻烦多于好处。你听说过“复制”吗? “集群”? “哈”?

标签: mysql rest architecture synchronization cpanel


【解决方案1】:

您将 列为技术这一事实表明您正在与预算不灵活的托管供应商合作。因此,他们不太可能合作设置后台任务(cron 作业)以在幕后合并您的用户表。 (cpanel 不是一种技术:它是由不信任客户技能的托管供应商提供的系统管理用户界面。)

所以。您应该在两个应用程序的代码中设计和实现一个 REST API 来执行用户注册和身份验证任务。您没有向我们展示您的应用程序的详细信息,因此很难为您设计它。您似乎仍然必须实施这些操作:

  • PUT 用户
  • 删除用户
  • 获取用户
  • POST 用户以验证用户密码等(不要使用 GET 传递机密信息:GET 请求参数进入服务器日志。)
  • PATCH 更新用户的详细信息。

如果您让 API 正常工作,那么无论何时您在一个应用中创建/检索/更新/删除用户信息,您都将使用该 API 在另一个应用中进行更改。

您最好的选择是创建第三个应用程序,仅用于用户管理,并让您现有的两个应用程序都使用它。这样一来,您就一定会拥有一个关于用户的连贯的事实来源。但是您可以在两个应用程序中完成。

【讨论】:

  • 我只提到 cPanel 是为了让您知道,以防有一些功能可以帮助我。无论如何,它们都是提交到页面并在验证后插入到数据库的简单注册表单。此外,我可以创建 cron 作业。但我不确定该怎么做。我将相应地编辑我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多