Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在MongoDB和OpenLDAP数据库之间同步数据_Java_Mongodb_Openldap_Atlassian Crowd_Database - Fatal编程技术网

Java 如何在MongoDB和OpenLDAP数据库之间同步数据

Java 如何在MongoDB和OpenLDAP数据库之间同步数据,java,mongodb,openldap,atlassian-crowd,database,Java,Mongodb,Openldap,Atlassian Crowd,Database,一个系统有两个数据库。一个是OpenLDAP,另一个是MongoDB。具体来说,我们使用的Atlassian群组使用这个OpenLDAP。我需要同步这两个数据库中的用户。就是 如果我创建一个用户,它将默认在OpenLDAP中创建,并且必须在MongoDB中创建 在过去,在处理这个问题时存在一些问题,可能有用户在OpenLDAP中,而不是在MongoDB中。我也需要找到这些用户 如果我从一个数据库中删除或更新一个用户,我需要在两个数据库中都执行删除或更新操作 我将使用Redis创建LDAP的缓存副

一个系统有两个数据库。一个是OpenLDAP,另一个是MongoDB。具体来说,我们使用的Atlassian群组使用这个OpenLDAP。我需要同步这两个数据库中的用户。就是

  • 如果我创建一个用户,它将默认在OpenLDAP中创建,并且必须在MongoDB中创建
  • 在过去,在处理这个问题时存在一些问题,可能有用户在OpenLDAP中,而不是在MongoDB中。我也需要找到这些用户
  • 如果我从一个数据库中删除或更新一个用户,我需要在两个数据库中都执行删除或更新操作 我将使用Redis创建LDAP的缓存副本。为了满足上述期望,在这两个数据库之间同步数据的最佳方法是什么

    如果有帮助的话,我正在后端使用Java。

    2种可能的方法:

  • (首选)在设计代码时,您可以“插入”数据库操作符以处理不同的数据库,因此您可以从门面代码访问它们,这样您就可以访问它们,而无需担心底层数据库,例如,创建一个用户应该是这样的:
  • createUser()->foreach dbhandle do dbhandle->createUser()forend

    这同样适用于删除或更新任何数据。这种方法也应该解决问题2


  • 您可以只更新一个数据库,然后在后台运行一个脚本来更新数据库。这种方法只允许您使用1个数据库,让脚本处理其余的数据库,但成本更高,可靠性更低(因为您可能访问1个尚未从主数据库更新的数据库)

  • 非常感谢你的回答。脚本编写是我同时想到的第一件事。作为长期解决方案,立面模式更具吸引力和可靠性。再次感谢。“由于您可能访问1个尚未从主数据库更新的数据库”,这两种解决方案中都存在此问题。