阿里云ECS部署Redis主备哨兵集群遇到的问题

一、部署

详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809

Redis5.0版本需要注意的参数配置:https://www.cnblogs.com/ibethfy/p/9965902.html

二、遇到的问题

1、bind公网IP地址时,会出现异常:【Cannot assign requested address】

  首先理解bind的含义:https://blog.csdn.net/cw_hello1/article/details/83444013

  原因:这里无法bind公网IP地址,是因为ECS的本地IP是通过NAT技术转换成了公网IP,即公网IP不是ECS任意一个网卡上的IP

  解决方案:bind 0.0.0.0,这样不论阿里云私网还是公网均可以访问

2、SpringBoot配置Redis主备哨兵集群后,无法连接

  原因:ECS实例既绑定了私网IP地址,也绑定了公网IP地址,哨兵会将监控的Redis实例IP地址收集管理起来,设置bind 0.0.0.0后,使得哨兵会收集这两个IP地址,而连接时使用的是私网IP地址,故无法连接

  解决方案:修改哨兵配置文件sentinel.conf,【sentinel announce-ip 哨兵所在的公网IP】

  announce-ip配置项的官方解释如下:

# sentinel announce-ip <ip>
# sentinel announce-port <port>
#
# The above two configuration directives are useful in environments where,
# because of NAT, Sentinel is reachable from outside via a non-local address.
#
# When announce-ip is provided, the Sentinel will claim the specified IP address
# in HELLO messages used to gossip its presence, instead of auto-detecting the
# local address as it usually does.
#
# Similarly when announce-port is provided and is valid and non-zero, Sentinel
# will announce the specified TCP port.
#
# The two options don‘t need to be used together, if only announce-ip is
# provided, the Sentinel will announce the specified IP and the server port
# as specified by the "port" option. If only announce-port is provided, the
# Sentinel will announce the auto-detected local IP and the specified port.

  大致意思是:考虑到NAT网络的存在,设置非本地IP后,哨兵可以正常地被外部访问

  同时,哨兵启动后,通过观察配置文件sentinel.conf,发现已不会收集Redis实例的私网IP

  最后SpringBoot可以正常连接Redis主备哨兵集群

注:以上场景为一主三备两哨兵,一主一备一哨兵在同一个ECS实例上,两备一哨兵在另一个ECS实例上,这两个ECS实例在同一个区域,属于同一个私有网段,且均绑定了公网IP

原文地址:https://www.cnblogs.com/voyager-fu/p/12069928.html

时间: 2024-08-02 01:58:51

阿里云ECS部署Redis主备哨兵集群遇到的问题的相关文章

搭建和测试 Redis 主备和集群

本文章只是自我学习用,不适宜转载. 1. Redis主备集群 1.1 搭建步骤 机器:海航云虚机(2核4GB内存),使用 Centos 7.2 64bit 操作系统,IP 分别是 192.168.100.5(主) 和 192.168.100.6(备). Redis 版本:3.2.3 1.1.1 在主备节点上,做如下安装 sudo yum update sudo yum install epel-release sudo yum update sudo yum install redis sudo

阿里云ECS部署Grafana接入zabbix

原文链接 摘要: Grafana接入zabbix部署 阿里云ECS部署Grafana接入zabbix Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器.Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSDB. Grafana接入zabbix部署 阿里云ECS部署Grafana接入zabbix Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器.Grafana 是开源的,功

部署redis主从高可用集群

部署redis主从高可用集群本文部署的redis集群是一主一从,这两台服务器都设置了哨兵进程,另外再加一台哨兵做仲裁,建议哨兵数量为基数172.16.1.187    redis主+哨兵172.16.1.188    redis从+哨兵172.16.1.189    哨兵以上系统均为CentOS6 在187,188,189上部署redis过程如下:(1)redis使用编译安装方式,所以需要安装编译基本组件# yum -y install gcc gcc-c++ make cmake cpp gl

Redis主从以及哨兵集群搭建(二)

Redis主从以及哨兵集群搭建 一.前言 Redis主从同步原理同MySQL的主从原理十分相似,而解决Redis单点故障的哨兵机制(sentinel)又同解决MySQL单点故障的MHA十分相似.因此我们在学习Redis时,可以将学习MySQL的知识迁移,这样一来,有利于我们快速掌握Redis主从机制,Redis哨兵集群的搭建.Redis的Sentinel机制大概是这样的.sentinel即哨兵,作用即放哨.开个玩笑,其实哨兵有三个作用:监控.通知和自动故障转移.哨兵是用来监控Redis的mast

阿里云ECS部署node.js及防火墙80端口开启

第一篇竟然是node.js在阿里云ECS上的部署遇到的小问题记录. 很多时候我们排除故障都会掉进小坑,但别小看是小坑,有时候挺烦人挺难缠的,主要还是基础知识匮乏导致思路混乱造成的,在这里记录下,给自己提个醒,也为网友指条明路,别像我一样乱折腾了. 环境描述: 1.阿里云ECS 单核.1G内存.1M带宽,基本就是最低配置了 2.阿里云提供的CentOS 6.5安全加固版 3.node.js 0.10.30 一,安装过程(尽量精简了,教程太多,不多说) #yum install gcc-c++ op

docker部署redis3主3从集群实践

redis源码下载路径:http://download.redis.io/releases/ #创建集群目录 mkdir /opt/redis cd /opt/redis mkdir c1 c2 c3 c4 c5 c6 #下载redis.conf wget http://download.redis.io/redis-stable/redis.conf 原文地址:https://www.cnblogs.com/fhwup/p/9120758.html

如何在阿里云上构建一个合适的Kubernetes集群

摘要: 声明 本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是作为参考,大家可以根据实际情况做出调整. 集群规划 在实际案例中发现,有不少同学使用了很多的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集群的优势. 声明 本文主要介绍如何在阿里云上构建一个K8S集群的实践,只是作为参考,大家可以根据实际情况做出调整. 集群规划 在实际案例中发现,有不少同学使用了很多的小规格的ECS来构建K8S集群,这样其实即没有达到省钱的目的,也没有很好的发挥K8S集

Centos 7.5安装部署redis 5.0.0集群

Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.和Memcached类似,但它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set -有序集合)和hash(哈希类型).与Memcached相同的是,为了保证访问效率,数据都是缓存在内存中:与Memcached不同的是,redis会周期性的把更新的数据写入磁盘或者写入追加的记录文件,并且

gitlab实现主备切换集群

历史:gitlab-ce是不支持分布式架构方案的,所以all in one的服务down后,服务无法迅速恢复 rsync+PostgreSQL备份的方式实现快速切换server ip实现伪高可用 主机列表192.168.102.7 gitlab-master192.168.102.7 gitlab-backup 1,搭建gitlab环境(主从一样) #wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.