Redis哨兵集群
使用Redis哨兵集群,主要是为了高可用,这次部署是,一主,二从,三哨兵。主可写可读,从可读,哨兵不提供读写服务,只是监控
一主
- 主要配置密码,端口,和可访问的ip
1 | #任何ip |

二从
- ip,只读,主信息等
1 | bind 0.0.0.0 |

三哨兵
- ip,主信息,选举等
1 | bind 0.0.0.0 |

docker-compose启动
- 结合docker 启动
1 | version: "3" |
SpringBoot介入
- 配置文件
1 | #主节点的名称 |
- 一些坑
- docker 部署的服务,给程序返回的主节点ip是虚拟ip,所以我这里用了域名,防止给程序一个根本连接不上的地址
- 为什么我用了docker,我还是要我本地的端口和容器端口一致,也是为了,如果主节点挂掉,哨兵给的从节点地址和端口,我spring程序是宿主机上的服务,想要连接上,尽量保证一致(虽然没什么卵用,因为主关了,哨兵给程序的新的redis的ip是 docker的内网地址)
- 哨兵上配置主的时候,竟然默认不支持域名的解析,需要增加如下两个配置
1
2
3
4#开启域名解析
sentinel resolve-hostnames yes
#保留域名(程序可以获取到域名)
sentinel announce-hostnames yes