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

源码哥网站的模板公司推广文案

源码哥网站的模板,公司推广文案,北湖区网站建设服务商,做塑料的外贸网站有哪些文章目录 编排步骤搭建主从节点创建容器启动容器 搭建哨兵节点创建容器哨兵节点配置文件配置节点启动容器 主从/哨兵节点连入同一个局域网 编排步骤 分为两组 yml,先后启动 我们其实也可以用于一个 yml 文件,直接启动 6 个容器,但是&#x…

文章目录

  • 编排步骤
  • 搭建主从节点
    • 创建容器
    • 启动容器
  • 搭建哨兵节点
    • 创建容器
    • 哨兵节点配置文件
      • 配置节点
      • 启动容器
  • 主从/哨兵节点连入同一个局域网

编排步骤

分为两组 yml,先后启动

我们其实也可以用于一个 yml 文件,直接启动 6 个容器,但是:

  • 如果把这六个容器同时启动,可能是哨兵先启动完成,数据节点后启动完成,哨兵就可能会先认为是数据节点挂了
  • 虽然对大局不影响,但是会影响到观察执行日志的过程

搭建主从节点

创建容器

  1. 创建三个容器,作为 redis 的数据节点(一主两从)

    • 这个名字不能改image.png|359

将下面的配置复制进去

version: '3.7'
services:master:image: 'redis:5.0.9'container_name: redis-masterrestart: alwayscommand: redis-server --appendonly yesports: - 6379:6379slave1:image: 'redis:5.0.9'container_name: redis-slave1restart: alwayscommand: redis-server --appendonly yes --slaveof redis-master 6379ports:- 6380:6379slave2:image: 'redis:5.0.9'container_name: redis-slave2restart: alwayscommandcommand: redis-server --appendonly yes --slaveof redis-master 6379ports:- 6381:6379
  • sevices:我们将要启动哪几个容器
    • masterslave1slave2 (这些名字自定义)
  • image:当前的容器是基于哪个镜像创建的
  • container_name:容器名字
  • restart异常情况终止后,是否重启
  • command:在启动 redis 服务器的时候,所用到的命令行选项
    • slaveof 后面不必写主节点 ip,直接写主节点的容器名就行了
    • 容器启动之后,被分配的 ip 是什么,也不知道
  • ports端口映射宿主机:容器内部端口
    • docker 容器可以理解成一个轻量的虚拟机。在这个容器里,端口号和外面宿主机的端口号,是两个体系。如果容器外面用了个 5000 端口,容器内也能用 5000 端口,并不冲突
    • 三个容器,每个容器的内部端口号都是自成一个小天地,容器 1 的 6379 和容器 2 的 6379 之间是不会有冲突的
    • 但是有时候,我们希望在容器外面能访问到容器里面的端口号,就可以把容器内部的端口映射成宿主机的端口。后续访问宿主机的这个端口,就相当于在访问对应容器的对应容器的对应端口了
    • 站在宿主的角度,访问上述几个端口的时候,也不知道这个端口实际上是一个宿主机上的服务,还是来自与容器内部的服务,只要正常去使用即可

这种映射过程,就非常像 NAT

  • 宿主机就像带有 NAT 功能的路由器,这个路由器能管理好几个局域网里面的机器
  • 正常来说,外面的没法访问局域网里面的设备,但是可以通过访问 NAT 设备上的某个端口,从而访问到局域网内部的某个设备的某个端口了

启动容器

  1. 启动容器
    使用命令
docker-compose up -d

image.png
image.png

image.png

  • 启动 6379 端口的 redis 服务器之后,可以看到这是个主节点,下面还有两个从节点

image.png

搭建哨兵节点

创建容器

  1. 创建三个容器,作为 redis 的哨兵节点

redis 哨兵节点,是单独的 redis 服务器进程

  • 用哨兵节点,监控服务器进程

image.png

在哨兵节点的配置文件中,粘贴下面的配置

version: '3.7'
services:sentinel1:image: 'redis:5.0.9'container_name: redis-sentinel-1restart: alwayscommand: redis-sentinel /etc/redis/sentinel.confvolumes:- ./sentinel1.conf:/etc/redis/sentinel.confports:- 26379:26379sentinel2:image: 'redis:5.0.9'container_name: redis-sentinel-2restart: alwayscommand: redis-sentinel /etc/redis/sentinel.confvolumes:- ./sentinel2.conf:/etc/redis/sentinel.confports:- 26380:26379sentinel3:image: 'redis:5.0.9'container_name: redis-sentinel-3restart: alwayscommand: redis-sentinel /etc/redis/sentinel.confvolumes:- ./sentinel3.conf:/etc/redis/sentinel.confports:- 26381:26379
  • volumes:在当前目录下创建出 sentinel1.confsentinel2.confsentinel3.conf 这三个配置文件,然后把这三个配置文件映射到即将创建的这三个容器中
    • 哨兵节点,会在运行过程中,对配置文件进行自动修改。因此,就不能拿一个配置文件,给三个容器分别进行映射
  • portdocker 的一个核心功能,能够进行端口的映射,容器内部乐意使用什么端口都行,映射出去之后,还是需要确保端口不能重复

哨兵节点配置文件

我们看一下这三个配置文件的具体细节

  • 初始情况下,这三个配置文件内容可以是一样的
bind 0.0.0.0
port 26379
sentinel monitor redis-master redis-master 6379 2
sentinel down-after-milliseconds redis-master 1000
  • bind:绑定一个 ip 地址,允许其他端口进行访问
  • port:主节点端口号
  • sentinel monitor:告诉 redis 节点,去监控哪个服务器
    • 服务器名字,这里其实是 ip,但是使用 dockerdocker 会自动进行域名解析
    • 服务器端口号(容器外的)
    • 法定票数。哨兵节点需要去判定当前的 redis 是否挂了,超过法定票数个哨兵意见一致,才确认挂了(更稳健,避免网络波动的影响造成误判)
  • sentinel down-after-milliseconds:心跳包的超时时间。超过超时时间之后包还没回来,就认为是挂了

配置节点

  1. 进行配置
    image.png

启动容器

  1. 启动容器
    按照后台启动的方式启动
    image.png

启动容器后,我们使用命令:

docker-compose logs
  • 查看日志,发现报错了:不能解析出主节点实例的主机名(此处哨兵节点不认识 redis-master
    • redis-master 相当于一个域名,docker 会进行域名解析,将其解析成对应容器的 ip(ip 可能会变,但是容器名字是不变的)

主从/哨兵节点连入同一个局域网

使用 docker-compose 一下,启动了 N 个容器,此时 N 个容器都处于同一个“局域网”中

  • 可以使这 N 个容器之间可以相互访问
  • 三个 redis-server 节点,是一个局域网;三个哨兵节点,是另一个局域网
  • 默认情况下,这两个网络是不互通的

解决方案
可以使用 docker-compose 把此处的两组服务放到同一个局域网中

  • docker network ls 列出当前 docker 中的局域网image.png|366
  • 此处先启动了三个 redis server 节点,就相当于自动创建了第一个局域网。再启动后面三个哨兵节点,就直接让这三个节点加入到上面的局域网中,而不是创建新的局域网

在刚刚的 yml 配置文件中,最后再加上

networks:default:external:name: redis-data_default

完整配置为:

version: '3.7'
services:sentinel1:image: 'redis:5.0.9'container_name: redis-sentinel-1restart: alwayscommand: redis-sentinel /etc/redis/sentinel.confvolumes:- ./sentinel1.conf:/etc/redis/sentinel.confports:- 26379:26379sentinel2:image: 'redis:5.0.9'container_name: redis-sentinel-2restart: alwayscommand: redis-sentinel /etc/redis/sentinel.confvolumes:- ./sentinel2.conf:/etc/redis/sentinel.confports:- 26380:26379sentinel3:image: 'redis:5.0.9'container_name: redis-sentinel-3restart: alwayscommand: redis-sentinel /etc/redis/sentinel.confvolumes:- ./sentinel3.conf:/etc/redis/sentinel.confports:- 26381:26379
networks:default:external:name: redis-data_default

image.png

使用 docker network inspect redis-data_default 命令,可以查看 redis-data_default 网络被哪些容器连接 image.png

上述的操作,就完成了此处的配置


我们再打开 sentinel.conf 这三个配置问价,发现里面发生了变化

bind 0.0.0.0
port 26379
sentinel myid f1fd960a20a1ba19973fb8fee67b666e00b85f27
sentinel deny-scripts-reconfig yes
# Generated by CONFIG REWRITE
dir "/data"
sentinel monitor redis-master 172.18.0.2 6379 2
sentinel down-after-milliseconds redis-master 1000
sentinel config-epoch redis-master 0
sentinel leader-epoch redis-master 0
sentinel known-replica redis-master 172.18.0.3 6379
sentinel known-replica redis-master 172.18.0.4 6379
sentinel known-sentinel redis-master 172.18.0.7 26379 3437afc8086d37ea3204d3522a0640db2028e045
sentinel known-sentinel redis-master 172.18.0.6 26379 f1fd960a20a1ba19973fb8fee67b666e00b85f27
sentinel known-sentinel redis-master 172.18.0.5 26379 a6a389363f12cbb25085a22680575d297589c46a
sentinel current-epoch 0
  • 配置重写:这些是哨兵节点启动之后,自动进行修改的
  • 三个文件里面的具体信息都不一样
http://www.dtcms.com/wzjs/395152.html

相关文章:

  • 建网站石家庄网络营销的未来发展趋势论文
  • 廊坊网站建设sem竞价培训班
  • 做网站公司叫什么杭州网站建设
  • 网站做接口排线方法seo上海推广公司
  • asp.net怎么做登录网站希爱力双效片骗局
  • 广州网站建设如何做国内网络销售平台有哪些
  • 宁波seo网络推广选哪家青岛网站制作seo
  • 建网站英语排名优化外包公司
  • 珠海哪里做网站的国外b站浏览器
  • 如何给网站绑定域名河南今日头条新闻
  • 用代码怎么做网站18款禁用软件黄app免费
  • 做三合一网站的好处幽默软文广告经典案例
  • 福州市建设局网站 动态优化设计七年级下册语文答案
  • 网站制作有哪些技术百度一下下载安装
  • 个人做医疗类网站违法?网络营销课程学什么
  • 网站建设xm37怎么找拉新推广平台
  • 做签证网站产品宣传推广方式有哪些
  • 中国住房城乡建设部官方网站seo资料站
  • 亚马逊云服务 网站建设网络营销平台都有哪些
  • 提升学历的机构seo查询 站长之家
  • 上海网站设计费用论坛企业推广
  • 做商铺最好的网站外贸网站建设优化
  • wordpress 自动webp百度seo优化分析
  • 东莞建设小学网站网站推广建设
  • html做网站需要服务器吗营销软件代理推广
  • 邢台地区网站建设有创意的网络广告案例
  • 餐饮美食网站模板源码河北seo推广公司
  • 大庆做网站比较好的公司企业网站建设的重要性
  • 企业网页模板图片seo具体是什么
  • 专门做面条菜谱的网站整合营销策略有哪些