因项目需要,系统要部署在不同的服务器上,如何将系统的静态资源保持一致是我们项目的一个重要节点,为此,我们将系统的一些静态数据存储在openldap中,利用openldap的多主同步机制来保持数据的一致性。配置如下:

  • 首先在进行openldap的编译安装时,需要开启以下几个参数:overlaysldapaccesslogsyncprov,其中-enable-ldap 选项用于支持ldap代理,在同步中用来推送数据;--enable-accesslog 选项用于记录用户操作,在同步中用于记录服务端的数据修改;--enable-syncprov 选项用于支持数据同步引擎。命令是

    env CPPFLAGS="-I/usr/local/berkeleydb/include" LDFLAGS="-L/usr/local/berkeleydb/lib" LD_LIBRARY_PATH="/usr/local/berkeleydb/lib"  ./configure --prefix=/usr/local/openldap --enable-ldbm --enable-overlays --enable-ldap --enable-accesslog  --enable-syncprov
    

    具体安装可以看我的上一篇文章,这里就不具体阐述了。

  • 之后进入slapd.conf文件开始配置,需要指出的是openldap有五种同步模式,每一种配置都有很多的相似之处,但是每种同步模式都有特定的使用场景以及各自的优势与局限,可以上网去查查看,这里我只说多主同步模式。
    在该同步模式下,每台主机既扮演provider又扮演consumer的角色,原理如图所示:

图片描述

配置文件如下
图片描述

值得注意的是我只是配置了两台服务器,如果想要配置三台以上的服务器,那么需要在这三台服务器openldap的配置文件中同时配置另外两台服务器的provider,其余不变,才能实现多主同步配置。

参照文档:http://www.zytrax.com/books/l... 这里说的很详细了。


nemo
3 声望0 粉丝

一个有点无聊的程序员,如果有一天,程序会说谎,我会不会依旧喜欢这个行业......写一点自己的东西,别虚度了时间,希望自己能坚持写下去。