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 个节点.
1, 配置多主, 一般在4-8台, 性能比单机情况下性能影响多少?
2, 复制是同步还是异步进行的? Reply
1、replication.slaveof.id这个配置项具体怎么用,配置文件里有一段注释,我理解是如果有id这个配置就用id,而且即使主机的ip和port变了也可以继续使用,没有的话用ip:port。这样理解对吗,有没有这方面的例子?
2、假如主机已经有大量的数据,备机连到主机上之后主机会把所有的数据同步到备机上吗?这个同步是基于binlog的吗,是的话binlog有没有大小或者长度的限制? Reply
1. 是的.
2. 是的. 对于一个新的slave, ssdb采用dump+binlog结合的方式. Reply
双主主要是用于容灾, 主备主要用于读写分离吗?
菜鸟请教,感谢。 Reply
不过对文章中提到的
"如果应用层已经解决了数据拆分, 也即不会两个节点同时操作一个 key"
这句话不明白是什么意思. 能更加详细的解释一下吗.
谢谢. Reply