2013-12-23

SSDB 的双主和多主配置

Views: 27047 | 11 Comments

SSDB 数据库是支持双主(双 Master)和多主架构的. 而且, 我们的应用也是部署双主架构, 但当作单主来用. 也就是说, 平时只往其中一个写, 当出现故障时, 整体切换到另一个主上面. 如果应用层已经解决了数据拆分, 也即不会两个节点同时操作一个 key, 那么就可以放心使用双主同时写入.

SSDB 双主的配置非常简单:

#server 1

replication:
	slaveof:
		id: svc_2
		# sync|mirror, default is sync
		type: mirror
		ip: 127.0.0.1
		port: 8889

#server 2

replication:
	slaveof:
		id: svc_1
		# sync|mirror, default is sync
		type: mirror
		ip: 127.0.0.1
		port: 8888

只需要将 type 设置为 mirror, 然后每个节点各指向对方即可.

如果是多主, 则每个节点要指向其它 n-1 个节点.

Related posts:

  1. SSDB 配置文件
  2. SSDB源码分析 – 主从和多主同步原理解析
  3. SSDB 双主(多主)同步模式现在 beta
  4. SSDB 已经支持在线备份功能!
  5. 将LevelDB数据导入SSDB
Posted by ideawu at 2013-12-23 13:16:20

11 Responses to "SSDB 的双主和多主配置"

  • 双主的话前端必须要要代理才能实现高可用吗?能否考虑像redis cluster那样不用代理的 Reply
  • 你好,请问一下
    1, 配置多主, 一般在4-8台, 性能比单机情况下性能影响多少?
    2, 复制是同步还是异步进行的? Reply
  • 您好,ssdb的多主模式,如果两台主机同时对一个key进行了修改(set或者incr),请问能够检测冲突吗?比如server1中,set a 1;然后在 server1 和 server2 中分别执行incr a; 感觉这种情况应该不会出现问题吧,同步之后,get a是不是应该是3? 但是如果server1 执行set a server1, server2执行 set a server2, 会不会出现server1与server2中都为server1,或者都为server2,或者server1是server2, server2是server1或者其他什么情况? Reply
  • 最近在尝试使用ssdb,有两个关于主备同步的问题
    1、replication.slaveof.id这个配置项具体怎么用,配置文件里有一段注释,我理解是如果有id这个配置就用id,而且即使主机的ip和port变了也可以继续使用,没有的话用ip:port。这样理解对吗,有没有这方面的例子?
    2、假如主机已经有大量的数据,备机连到主机上之后主机会把所有的数据同步到备机上吗?这个同步是基于binlog的吗,是的话binlog有没有大小或者长度的限制? Reply
    @libingbuaa: Hi,
    1. 是的.
    2. 是的. 对于一个新的slave, ssdb采用dump+binlog结合的方式. Reply
  • 双主 和 主备有什么不同?

    双主主要是用于容灾, 主备主要用于读写分离吗?

    菜鸟请教,感谢。 Reply
    @天晴: 双主是为了高可用(同时包含主从的优点). 主从是为了容灾和负载均衡. Reply
  • 您好,我想问一下,采用双主配置后,性能是否会出现下降,如果下降的话,大概降低多少? Reply
    @大飞: 不会有下降. Reply
  • 谢谢给出详细的指示.
    不过对文章中提到的

    "如果应用层已经解决了数据拆分, 也即不会两个节点同时操作一个 key"

    这句话不明白是什么意思. 能更加详细的解释一下吗.

    谢谢. Reply
    @wen66: 对键值进行hash,使同一个健值在同一个服务器上 Reply

Leave a Comment