内容简介:记录最后一次对中型2C企业级项目的容器化改造hello, 好久不见,之前文章记录了一个实战的2C分布式项目的改造过程,结果如下:
记录最后一次对中型2C企业级项目的容器化改造
hello, 好久不见,之前文章记录了一个实战的2C分布式项目的改造过程,结果如下:
其中Redis并未完成容器化改造(目前是主机单点),本文记录将Redis升级到 容器化Redis-Sentinel集群 。
升级思路:
- 《Docker-compose搭建Redis高可用哨兵集群》,这里将Redis-Sentinel容器接入现有Docker Swarm overlay网络,规避Redis ClientApp访问不同网络的Redis-Sentinel引发的混乱(因NAT转换和Port映射)。
- 利用主机上现有Redis dump.rdb持久化文件快速启动Redis哨兵集群
(1 master:2slave:3 sentinel) - 修改
receiver、app的Redis连接字符串,验证
注意事项
- 现有的应用程序处于Docker Swarm Overlay网络,默认是不允许附加其他容器,这里我们需要将该Overlay网络配置成
可附加,方便Redis-Sentinel接入该网络,所有容器同网络。
......
# 下面生成的overlay网络名称是:eqidstack_webnet
networks:
webnet:
driver: overlay
attachable: true // 应用程序Docker swarm overlay网络配置可附加容器
.....
- 官方Redis镜像持久化数据存储在:
/data, 本处我们需要将现有的主机Redis dump.rdb文件外挂进Master容器。
# 下面是master/slave docker-compose.yml文件
version: '3.7'
services:
master:
image: redis
container_name: redis-master
command: redis-server --requirepass zxcde@1 --masterauth zxcde@1
volumes:
- /home/redis-sentinel/redis/data:/data
ports:
- "6380:6379"
networks:
- webnet
slave1:
image: redis
container_name: redis-slave-1
ports:
- "6381:6379"
command: redis-server --slaveof redis-master 6379 --masterauth zxcde@1 --requirepass zxcde@1
networks:
- webnet
slave2:
image: redis
container_name: redis-slave-2
ports:
- "6382:6379"
command: redis-server --slaveof redis-master 6379 --masterauth zxcde@1 --requirepass zxcde@1
networks:
- webnet
networks:
webnet:
external: true
name: eqidstack_webnet
- 经过验证,最新版本StackExchange.Redis 2.1.58 可以更简洁的方式支持Redis-sentinel, 只需更改连接字符串,其中
10.0.7.41:26379,10.0.7.42:26379,10.0.7.43:26379是sentinel容器ip,serviceName配置主节点名称。
"redis": "10.0.7.41:26379,10.0.7.42:26379,10.0.7.43:26379,serviceName=mymaster1,password=zxcde@1,abortConnect=false,connectTimeout=10000,writeBuffer=40960"
后记
本文记录较凌乱,需要了解本次实操的背景和过程。
总结起来:将主机上现有单点Redis服务容器化,并搭建哨兵高可用集群, 且将Redis集群与应用程序放在同一Overlay网络,便于同网络段容器通信。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop A...
- Flutter 添加到现有项目
- 现有iOS工程引入Flutter
- 为现有 iOS项目集成 Flutter
- QLoo推出用于现有服务的GraphQL接口
- 观点 | 激励循环——加密算法如何实际修复现有激励循环
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ACM/ICPC程序设计与分析
沈云付 / 清华大学 / 2010-7 / 39.50元
《ACM/ICPC程序设计与分析(C++实现)》介绍ACM国际大学生程序设计竞赛概况及程序设计基础,系统介绍数论、组合数学、动态规划、计算几何、搜索、图论和网络流等专题的典型算法,挑选历年竞赛中许多有代表性的竞赛题作为例题进行分析,便于学生编程时模仿学习。每章的例题和习题都配有输入输出样例,方便学生在编程时测试与调试程序。《ACM/ICPC程序设计与分析(C++实现)》以C++为程序设计语言,以提......一起来看看 《ACM/ICPC程序设计与分析》 这本书的介绍吧!