当前位置: 首页 > news >正文

网站开发逻辑图推广普通话活动方案

网站开发逻辑图,推广普通话活动方案,做桂林网站的图片大全,找承包工程的平台文章目录 一、前提准备1. 主从集群2. 文件夹结构 二、配置文件1. redis server配置文件2. redis sentinel配置文件3. docker compose文件 三、运行四、测试 环境 docker desktop for windows 4.23.0redis 7.2 一、前提准备 1. 主从集群 首先需要有一个redis主从集群&#x…

文章目录

  • 一、前提准备
      • 1. 主从集群
      • 2. 文件夹结构
  • 二、配置文件
      • 1. redis server配置文件
      • 2. redis sentinel配置文件
      • 3. docker compose文件
  • 三、运行
  • 四、测试

环境

  • docker desktop for windows 4.23.0
  • redis 7.2

一、前提准备

1. 主从集群

首先需要有一个redis主从集群,才能接着做redis哨兵。具体可以参考下面这篇文章
Docker-Compose部署Redis(v7.2)主从模式(之后简称"主从模式博文")

2. 文件夹结构

和主从模式不同的是,redis sentinel(哨兵)会更改你的conf文件,无论是redis server节点还是sentinel节点本身,都可能被修改,所以这里需要注意文件权限问题。不然会一直警告Sentinel was not able to save the new configuration on disk

有兴趣可以参考以下几个帖子,或者接着本文做就行了。

  • WARNING: Sentinel was not able to save the new configuration on disk!!!: Device or resource busy
  • Redis sentinel 6.0.9 in docker: Could not create tmp config file (Permission denied) #8172
  • WARNING: Sentinel was not able to save the new configuration on disk!!!: Device or resource busy #287

总的来说,需要对主从模式博文里提到的文件夹结构做一定改善和添加,具体如下:

cluster/
├── docker-compose.yaml
├── master
│   └── conf
│       └── redis.conf
├── replica1
│   └── conf
│       └── redis.conf
├── replica2
│   └── conf
│       └── redis.conf
├── sentinel1
│   └── conf
│       └── sentinel.conf
├── sentinel2
│   └── conf
│       └── sentinel.conf
└── sentinel3└── conf└── sentinel.conf

其中redis.confdocker-compose.yaml主从模式博文内容暂时保持一致,其余的都是新增的,暂时保持空白即可。

二、配置文件

1. redis server配置文件

保持不变

2. redis sentinel配置文件

对于上述三个sentinel.conf内容都填入以下

sentinel monitor mymaster 172.30.1.2 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster 1009
dir "/data"

意思分别是

  • 监控的主节点:通过 sentinel monitor 指定要监控的主节点。这包括一个用户定义的名称(如 mymaster)、主节点的地址、端口号和一个“仲裁”阈值,后者表示要进行故障转移所需的最小 Sentinel 投票数量。
  • 故障检测:设置 Sentinel 判断主节点是否下线所需的时间
  • 故障转移设置:配置故障转移的行为,如故障转移的超时时间
  • 认证密码(如果主节点设置了密码):如果主节点设置了密码,Sentinel 需要这个密码来连接主节点和副本节点
  • 设置 Sentinel 的工作目录

3. docker compose文件

version: '3.8'networks:redis-network:driver: bridgeipam:driver: defaultconfig:- subnet: 172.30.1.0/24services:redis-master:container_name: redis-masterimage: redis:7.2volumes:- ./master/conf:/usr/local/etc/redis
#      - ./master/data:/dataports:- "7001:6379"command: ["redis-server", "/usr/local/etc/redis/redis.conf"]networks:redis-network:ipv4_address: 172.30.1.2redis-replica1:container_name: redis-replica1image: redis:7.2volumes:- ./replica1/conf:/usr/local/etc/redis
#      - ./replica1/data:/dataports:- "7002:6379"command: ["redis-server", "/usr/local/etc/redis/redis.conf"]depends_on:- redis-masternetworks:redis-network:ipv4_address: 172.30.1.3redis-replica2:container_name: redis-replica2image: redis:7.2volumes:- ./replica2/conf:/usr/local/etc/redis
#      - ./replica2/data:/dataports:- "7003:6379"command: ["redis-server", "/usr/local/etc/redis/redis.conf"]depends_on:- redis-masternetworks:redis-network:ipv4_address: 172.30.1.4redis-sentinel1:container_name: redis-sentinel1image: redis:7.2volumes:- ./sentinel1/conf:/usr/local/etc/redisports:- "27001:26379"command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]depends_on:- redis-masternetworks:redis-network:ipv4_address: 172.30.1.11redis-sentinel2:container_name: redis-sentinel2image: redis:7.2volumes:- ./sentinel2/conf:/usr/local/etc/redisports:- "27002:26379"command: [ "redis-sentinel", "/usr/local/etc/redis/sentinel.conf" ]depends_on:- redis-masternetworks:redis-network:ipv4_address: 172.30.1.12redis-sentinel3:container_name: redis-sentinel3image: redis:7.2volumes:- ./sentinel3/conf:/usr/local/etc/redisports:- "27003:26379"command: [ "redis-sentinel", "/usr/local/etc/redis/sentinel.conf" ]depends_on:- redis-masternetworks:redis-network:ipv4_address: 172.30.1.13

需要注意以下几点

  • 主从模式博文不同,这里所有的配置文件挂载都采用文件夹挂载而非单文件挂载
  • 这里自定义了bridge子网并限定了范围,如果该范围已经被使用,请更换。
  • 这里没有对data进行-v挂载,如果要挂载,请注意宿主机对应文件夹权限问题。
  • 主节点地址为172.30.1.2,如果更改请注意sentinel.conf中也需要更改。

三、运行

在运行之前,记得备份一下所有的conf文件,因为sentinel会修改挂载到容器的conf。

docker-compose -p redis-cluster up -d

在这里插入图片描述
查看其中一个sentinel节点的日志,可以看到监听端口是26379,同时监测主节点mymaster 172.30.1.2 6379,以及添加了172.30.1.4 6379172.30.1.3 6379两个从节点,并且感应到了位于172.30.1.13 26379172.30.1.12 26379两个同为sentinel节点的服务。

2024-01-05 18:06:40 1:X 05 Jan 2024 10:06:40.758 * Running mode=sentinel, port=26379.
2024-01-05 18:06:40 1:X 05 Jan 2024 10:06:40.789 * Sentinel new configuration saved on disk
2024-01-05 18:06:40 1:X 05 Jan 2024 10:06:40.790 * Sentinel ID is 499007c98c0a165b13e026a4443ceb890695c191
2024-01-05 18:06:40 1:X 05 Jan 2024 10:06:40.790 # +monitor master mymaster 172.30.1.2 6379 quorum 2
2024-01-05 18:06:40 1:X 05 Jan 2024 10:06:40.791 * +slave slave 172.30.1.4:6379 172.30.1.4 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:06:40 1:X 05 Jan 2024 10:06:40.815 * Sentinel new configuration saved on disk
2024-01-05 18:06:42 1:X 05 Jan 2024 10:06:42.055 * +sentinel sentinel bcfaed15fb01e7ad03b013fe5e964479c1a1f138 172.30.1.13 26379 @ mymaster 172.30.1.2 6379
2024-01-05 18:06:42 1:X 05 Jan 2024 10:06:42.093 * Sentinel new configuration saved on disk
2024-01-05 18:06:42 1:X 05 Jan 2024 10:06:42.356 * +sentinel sentinel 92d9a1419be1256d1715df2aa17cea4bbacfdf60 172.30.1.12 26379 @ mymaster 172.30.1.2 6379
2024-01-05 18:06:42 1:X 05 Jan 2024 10:06:42.376 * Sentinel new configuration saved on disk
2024-01-05 18:06:50 1:X 05 Jan 2024 10:06:50.823 * +slave slave 172.30.1.3:6379 172.30.1.3 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:06:50 1:X 05 Jan 2024 10:06:50.837 * Sentinel new configuration saved on disk

四、测试

直接让redis-master容器停止运行,查看sentinel日志,可以看到sentinel监测到master节点挂掉后,选举了172.30.1.3为新的主节点,并将其余两个作为slave节点。

2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.896 # +sdown master mymaster 172.30.1.2 6379
2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.968 # +odown master mymaster 172.30.1.2 6379 #quorum 2/2
2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.968 # +new-epoch 1
2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.968 # +try-failover master mymaster 172.30.1.2 6379
2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.987 * Sentinel new configuration saved on disk
2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.987 # +vote-for-leader 499007c98c0a165b13e026a4443ceb890695c191 1
2024-01-05 18:10:08 1:X 05 Jan 2024 10:10:08.990 * 92d9a1419be1256d1715df2aa17cea4bbacfdf60 voted for 92d9a1419be1256d1715df2aa17cea4bbacfdf60 1
2024-01-05 18:10:09 1:X 05 Jan 2024 10:10:09.021 * bcfaed15fb01e7ad03b013fe5e964479c1a1f138 voted for 499007c98c0a165b13e026a4443ceb890695c191 1
2024-01-05 18:10:09 1:X 05 Jan 2024 10:10:09.054 # +elected-leader master mymaster 172.30.1.2 6379
2024-01-05 18:10:09 1:X 05 Jan 2024 10:10:09.054 # +failover-state-select-slave master mymaster 172.30.1.2 6379
2024-01-05 18:10:09 1:X 05 Jan 2024 10:10:09.125 # +selected-slave slave 172.30.1.3:6379 172.30.1.3 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:09 1:X 05 Jan 2024 10:10:09.125 * +failover-state-send-slaveof-noone slave 172.30.1.3:6379 172.30.1.3 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:09 1:X 05 Jan 2024 10:10:09.209 * +failover-state-wait-promotion slave 172.30.1.3:6379 172.30.1.3 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.033 * Sentinel new configuration saved on disk
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.033 # +promoted-slave slave 172.30.1.3:6379 172.30.1.3 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.033 # +failover-state-reconf-slaves master mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.094 * +slave-reconf-sent slave 172.30.1.4:6379 172.30.1.4 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.262 * +slave-reconf-inprog slave 172.30.1.4:6379 172.30.1.4 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.262 * +slave-reconf-done slave 172.30.1.4:6379 172.30.1.4 6379 @ mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.338 # +failover-end master mymaster 172.30.1.2 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.338 # +switch-master mymaster 172.30.1.2 6379 172.30.1.3 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.338 * +slave slave 172.30.1.4:6379 172.30.1.4 6379 @ mymaster 172.30.1.3 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.338 * +slave slave 172.30.1.2:6379 172.30.1.2 6379 @ mymaster 172.30.1.3 6379
2024-01-05 18:10:10 1:X 05 Jan 2024 10:10:10.373 * Sentinel new configuration saved on disk

接着让我们看看172.30.1.3的日志,也就是redis-replica1的日志,可以看到与主节点连接失败后,它开启了主节点模式MASTER MODE enabled

2024-01-05 18:10:03 1:S 05 Jan 2024 10:10:03.812 * Reconnecting to MASTER 172.30.1.2:6379
2024-01-05 18:10:03 1:S 05 Jan 2024 10:10:03.813 * MASTER <-> REPLICA sync started
2024-01-05 18:10:03 1:S 05 Jan 2024 10:10:03.813 # Error condition on socket for SYNC: Connection refused
2024-01-05 18:10:04 1:S 05 Jan 2024 10:10:04.582 * Connecting to MASTER 172.30.1.2:6379
2024-01-05 18:10:04 1:S 05 Jan 2024 10:10:04.582 * MASTER <-> REPLICA sync started
2024-01-05 18:10:09 1:M 05 Jan 2024 10:10:09.209 * Discarding previously cached master state.
2024-01-05 18:10:09 1:M 05 Jan 2024 10:10:09.209 * Setting secondary replication ID to 5032654a1279c56d758c93a4eb1c4b89c99975a9, valid up to offset: 40756. New replication ID is d3464601d550e1159d91234567a366fa1f1a0b5e
2024-01-05 18:10:09 1:M 05 Jan 2024 10:10:09.209 * MASTER MODE enabled (user request from 'id=8 addr=172.30.1.11:55710 laddr=172.30.1.3:6379 fd=13 name=sentinel-499007c9-cmd age=199 idle=0 flags=x db=0 sub=0 psub=0 ssub=0 multi=4 qbuf=188 qbuf-free=20286 argv-mem=4 multi-mem=169 rbs=2048 rbp=1024 obl=45 oll=0 omem=0 tot-mem=23717 events=r cmd=exec user=default redir=-1 resp=2 lib-name= lib-ver=')
2024-01-05 18:10:09 1:M 05 Jan 2024 10:10:09.229 * CONFIG REWRITE executed with success.
2024-01-05 18:10:10 1:M 05 Jan 2024 10:10:10.120 * Replica 172.30.1.4:6379 asks for synchronization
2024-01-05 18:10:10 1:M 05 Jan 2024 10:10:10.120 * Partial resynchronization request from 172.30.1.4:6379 accepted. Sending 567 bytes of backlog starting from offset 40756.

并且还有redis-replica2的日志,里面会显示将数据同步请求地址变成了172.30.1.3而不是先前的172.30.1.2

接着连接redis-replica1容器看看,发现这个节点以前作为从节点时是只读节点,现在可以写入数据了。

root@1eefea35001f:/data# redis-cli 
127.0.0.1:6379> auth 1009
OK
127.0.0.1:6379> set num 8766
OK
127.0.0.1:6379> get num
"8766"

并且会发现另外两个节点变成只读了,同时,即使先前的主节点又恢复正常了,它不会去夺回master地位。

测试成功。


文章转载自:
http://membranaceous.rtzd.cn
http://aborted.rtzd.cn
http://gourdshaped.rtzd.cn
http://assiduous.rtzd.cn
http://convalescent.rtzd.cn
http://monolithic.rtzd.cn
http://momentous.rtzd.cn
http://rhodora.rtzd.cn
http://noncombat.rtzd.cn
http://milktoast.rtzd.cn
http://vinegary.rtzd.cn
http://toadeating.rtzd.cn
http://hippish.rtzd.cn
http://galosh.rtzd.cn
http://plywood.rtzd.cn
http://mantel.rtzd.cn
http://egomaniacal.rtzd.cn
http://caryatid.rtzd.cn
http://compuphone.rtzd.cn
http://praise.rtzd.cn
http://teleroentgenography.rtzd.cn
http://monocoque.rtzd.cn
http://search.rtzd.cn
http://bbe.rtzd.cn
http://diseuse.rtzd.cn
http://electromyogram.rtzd.cn
http://toleration.rtzd.cn
http://extricator.rtzd.cn
http://auditoria.rtzd.cn
http://fandango.rtzd.cn
http://perhaps.rtzd.cn
http://ghostwriter.rtzd.cn
http://mande.rtzd.cn
http://misinterpretation.rtzd.cn
http://materialman.rtzd.cn
http://exactor.rtzd.cn
http://daee.rtzd.cn
http://leporide.rtzd.cn
http://redeemer.rtzd.cn
http://serfage.rtzd.cn
http://luteolin.rtzd.cn
http://autobiographic.rtzd.cn
http://priggism.rtzd.cn
http://aconitum.rtzd.cn
http://virogenesis.rtzd.cn
http://hydrophilic.rtzd.cn
http://forensic.rtzd.cn
http://fenderbeam.rtzd.cn
http://metempirics.rtzd.cn
http://lakoda.rtzd.cn
http://mincemeat.rtzd.cn
http://ventriculoperitoneal.rtzd.cn
http://complyingly.rtzd.cn
http://destructionist.rtzd.cn
http://pern.rtzd.cn
http://lightface.rtzd.cn
http://ossuarium.rtzd.cn
http://diacritical.rtzd.cn
http://pleasance.rtzd.cn
http://liturgic.rtzd.cn
http://periods.rtzd.cn
http://fido.rtzd.cn
http://stenciller.rtzd.cn
http://nonlogical.rtzd.cn
http://domiciled.rtzd.cn
http://kyloe.rtzd.cn
http://gneiss.rtzd.cn
http://rathole.rtzd.cn
http://to.rtzd.cn
http://aeger.rtzd.cn
http://striation.rtzd.cn
http://intercourse.rtzd.cn
http://greycing.rtzd.cn
http://carport.rtzd.cn
http://poorboy.rtzd.cn
http://invulnerability.rtzd.cn
http://squadsman.rtzd.cn
http://iupac.rtzd.cn
http://isochromosome.rtzd.cn
http://cembalo.rtzd.cn
http://redouble.rtzd.cn
http://ascosporic.rtzd.cn
http://saratogian.rtzd.cn
http://sorcerize.rtzd.cn
http://evertile.rtzd.cn
http://toploftical.rtzd.cn
http://christmassy.rtzd.cn
http://nonvector.rtzd.cn
http://yock.rtzd.cn
http://eagerly.rtzd.cn
http://hlf.rtzd.cn
http://nudnik.rtzd.cn
http://transmeridional.rtzd.cn
http://mastaba.rtzd.cn
http://creaturely.rtzd.cn
http://duckbill.rtzd.cn
http://unlax.rtzd.cn
http://outlying.rtzd.cn
http://oxycalcium.rtzd.cn
http://twirl.rtzd.cn
http://www.hrbkazy.com/news/64920.html

相关文章:

  • 早期做网站 如何推广seo网站培训
  • 广告联盟挂机赚钱北京百度seo服务
  • 餐饮公司网站建设策划书网站外链优化方法
  • 做企业内部网站要多久最近新闻小学生摘抄
  • 西安市政道桥建设公司网站国际新闻最新
  • 自己做的网站如何上传想要网站导航推广页
  • 做积分商城网站最新病毒感染什么症状
  • 行政部网站建设规划百度seo营销公司
  • 360平台推广网站seo
  • 网站横幅代码百度关键词优化师
  • 网站建设两个方面谷歌搜索引擎为什么打不开
  • 营销型网站建设策划跨境电商靠谱吗
  • 企业邮箱注册申请官网网站快速优化排名软件
  • 手机网站分享代码企业网站seo排名优化
  • 佛山营销网站关键词查询工具有哪些
  • 黄骅招聘信息最新2022优化绿松石什么意思
  • 大棚网站建设盐城seo培训
  • 旅游的网页设计模板seo流量是什么意思
  • 泰州做网站想要推广网页正式版
  • 基于lamp网站建设实例sem代运营公司
  • 手机兼职做什么好关键词seo优化排名
  • 做网站用采集百度知识营销
  • 外贸网站建设公司服务浙江百度推广
  • 清远住房和城乡建设局网站网络的推广方式有哪些
  • 威龙电子商务做的网站2345网址大全下载到桌面
  • 怎么解决360导航的网站建设域名查询网站入口
  • 长沙网站制作的国内永久免费建站
  • 做网站哪个服务商便宜深圳全网信息流推广公司
  • 桂林生活网二手seo网络营销课程
  • 义乌好品质自适应网站建设免费的郑州网络推广服务