
1 j2gg0s 2019-04-09 12:40:56 +08:00 基本没有好的实现思路。存储还是缓存?如果是存储且需要双主能不能用 MySQL,然后 redis 做缓存?如果是缓存,需要双主? |
3 lhx2008 2019-04-09 12:50:07 +08:00 双主冲突问题比较复杂吧,可以对不同地区的用户,直接分成两部分。实在需要同步的数据,还是挂主从同步。 |
4 dengtongcai 2019-04-09 12:56:06 +08:00 via iPhone codis 或者自带的无中心直连集群理论可行吗,生产没用过 |
5 halk 2019-04-09 12:57:37 +08:00 见过大厂的自定义实现, 不知道 LZ 这样做的目的是什么? |
6 6ufq0VLZn0DDkL80 2019-04-09 13:21:03 +08:00 冲突咋处理,不用处理的话直接同步日志得了 |
7 chinazz OP @halk 主要是解决跨区问题,中国地区写入的时候直接写入 A 服务,国外地区直接写入 B 服务。( A、B 服务是实时同步的,保持数据一致)有什么相关的链接或者博文吗?没有找到合适的解决方法。 |
8 ech0x 2019-04-09 14:04:32 +08:00 via iPhone 这个问题信息太少了,CAP 理论了解一下。 一致性、可用性、分区容错性 看你怎么权衡了。 |
10 9hills 2019-04-09 14:11:27 +08:00 via iPhone 如果要实现跨州实时强一致低延迟写入,理论上是不可能的。 同时在 a 地域和 b 地域对 key 赋值,怎么解决冲突的问题? 必须要放弃什么东西,你可以放弃低延迟,只有 AB 同时 ack 才算写入成功。你也可以放弃强一致,改成基于原子钟的时序归并,达到最终一致。 |
11 boyhailong 2019-04-09 15:20:26 +08:00 为什么要这么做成两个双主这么麻烦 主从不就行了? 没有背景的提问没任何意义 |
12 halk 2019-04-09 16:03:07 +08:00 |
13 Linken404 2019-04-09 16:12:22 +08:00 目前看是没有吧... 除非能换 mysql,比如想办法把 AB 两区域的 redis 数据汇集到一个 mysql 里? 最好还是能变通一下,不要强行给自己挖坑啊... |
14 j2gg0s 2019-04-09 16:27:24 +08:00 @chinazz MySQL 的异地多主有成熟可靠的方案,redis 当前没有,估计以后也不会有,RDB,AOF 和 Binlog 的特性差的还是比较原的; 建议:1 数据源换成 MySQL,MySQL 多主,redis 做缓存 2 双主之间没有严重数据冲突的话,可以搞个 kafka 跨机房同步,但是估计这个以后会坑自己 |
15 leviathan0992 2019-04-09 16:31:33 +08:00 @chinazz 双主的架构是为了双写吗? 还是处于别的什么原因 |
16 misaka19000 2019-04-09 16:43:25 +08:00 双主一致性太难保证了吧 |
17 chinazz OP @leviathan0992 双主架构是为了异地双写。 |
18 chinazz OP @misaka19000 所以想找一下有没有相关的案例之类的 |
19 leviathan0992 2019-04-09 16:59:04 +08:00 @chinazz 操作同一个 key 必须要求保证一致性吗? |
20 chinazz OP @leviathan0992 对,数据必须保持一致性 |
21 leviathan0992 2019-04-09 17:12:21 +08:00 @chinazz 那需求是两边操作同一个 key 根据时间戳来决定 apply 哪个操作吗? |
22 MilkShake 2019-04-09 18:02:52 +08:00 我不知道你的具体场景是什么,可以写一个微服务来实现。你的程序连接微服务,微服务可以连接两个 redis,去读取或者写入数据。 |
23 joesonw 2019-04-09 18:18:37 +08:00 via iPhone tidis,兼容 redis 协议。是基于 TiKV 的,TiKV 可以 cross datacenter,意味着理论上 tidis 也可以,只是说延迟可能会高一些,这就见仁见智了。 |
24 kaiser1992 2019-04-09 20:02:56 +08:00 via Android 感觉类似于分布式数据库中通过数据库链接、触发器和事务来实现 |
25 leviathan0992 2019-04-09 20:06:39 +08:00 @chinazz 我的问题是双主两个实例*同时*操作一个 Key, 这种情况必须确保两边的 value 一致吗? |
26 chinazz OP @leviathan0992 确保两边的 Value 一致 |
27 chinazz OP 目前找到一个不错的解决方案。dynomite 还在调研中。 |