• 哨兵和docker容器


    1,redis哨兵的配置

    redis-6379配置文件内容如下
    cat redis-6379.conf 
    
    port 6379
    daemonize yes
    logfile "6379.log"
    dbfilename "dump-6379.rdb"
    dir "/var/redis/data/"
    daemonize yes 

    配置3个哨兵配置文件都上边所示,只不过端口要改变

    2,启动三个端口实例

    • redis-server redis-6379.conf 
    • redis-server redis-6380.conf
    • redis-server redis-6381.conf

    3,检查三个redis实例的主从身份关系

    • redis-cli -p 6379 info replication
    • redis-cli -p 6380 info replication
    • redis-cli -p 6381 info replication

     4,配置三个哨兵

    • redis-sentinel-26379.conf
    • redis-sentinel-26380.conf
    • redis-sentinel-26381.conf

    配置文件如下:

    # Sentinel节点的端口
        port 26379  
        dir /var/redis/data/
        logfile "26379.log"
    
        # 当前Sentinel节点监控 127.0.0.1:6379 这个主节点
        # 2代表判断主节点失败至少需要2个Sentinel节点节点同意
        # mymaster是主节点的别名
        sentinel monitor mymaster 127.0.0.1 6379 2
    
        # 每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
        sentinel down-after-milliseconds mymaster 30000
    
        # 当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
        原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
        sentinel paralle
    

    启动3个哨兵

    • redis-sentinel redis-sentinel-26379.conf
    • redis-sentinel redis-sentinel-26380.conf
    • redis-sentinel redis-sentinel-26381.conf

    检查redis哨兵身份信息,检查主从节点状态

    • redis-cli -p 23679 info sentinel
    • redis-cli -p 26380 info sentinel
    • redis-cli -p 26381 info sentinel

    配置好以后,杀死master节点,查看主从身份切换是否正常

    5,哨兵集群

    • 查看redis配置文件,修改6个文件不同的端口配置
    • sed   's/7000/7001/g' redis-7000.conf    #此时还未生效,只返回处理结果
              -i 参数,写入到文件 insert 
              
          sed  -i  's/7000/7001/g' redis-7000.conf  #对这个文件修改
      
          sed    's/7000/7001/g'    redis-7000.conf   >  redis-7001.conf
      
          sed     linux处理字符串的命令
      
          's/7000/7001/g'     第二空格 放入你想替换的内容 
              s  代表替换指令
              /你想换的内容/你想替换后的内容/
              g 全局替换 globol 
           
           redis-7000.conf   操作的对象,将这个文件内的所有7000替换为7001

    配置6个文件redis.conf,只是端口不一样

    port 7000
    daemonize yes
    dir "/opt/redis/data"
    logfile "7000.log"
    dbfilename "dump-7000.rdb"
    cluster-enabled yes 
    cluster-config-file nodes-7000.conf
    cluster-require-full-coverage no

    6,安装配置环境,用于一键搭建redis集群

    1. 下载源码:
      • wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
    2. 解压缩ruby
      • tar -xvf ruby-2.3.1.tar.gz
    3. 编译安装ruby
      • ./configure --prefix=/opt/ruby/
          make && make install

    7,准备ruby环境

    • cp ./bin/ruby   /usr/local/bin/
      cp ./bin/gem   /usr/local/bin

    8,下载ruby的软件包管理工具

    • wget http://rubygems.org/downloads/redis-3.3.0.gem
    • gem install -l redis-3.3.0.gem  #安装ruby操作redis的模块

    9,查看ruby包括哪些语言

    • gem list -- check redis gem

    10,配置环境变量redis-trib.rb,用于创建redis-cluster

    #找到这个redis-trib.rb命令在哪里
        [root@node1 /opt/redis-4.0.10/src 10:28:32]#find /opt  -name redis-trib.rb
        /opt/redis-4.0.10/src/redis-trib.rb
        #配置环境变量,用于快速执行redis-trib.rb这个命令 
        cp /opt/redis-4.0.10/src/redis-trib.rb    /usr/local/bin/

    11,通过redis-trib.rb命令,一键创建redis-cluster集群功能

    #其实就是分配槽位,分配主从关系
        #通过这个命令,创建集群功能
        #1  代表每个主只有一个从
        #自动给后面6个节点,分配主从关系,7000、7001、7002是主节点,7003、7004、7005是从节点
        redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
        

    12,写入数据,来使用redis集群,查看集群节点的身份信息

    • redis-cli -p 端口 info repliaction
    • redis操作集群数据,通过-c参数才能制定集群功能
    • redis-cli -p 7000 -c

    13,解决环境依赖的问题

    虚拟机,定制操作系统模板

    vmware esxi 定制一个centos镜像板块,在模板中安装vim, 安装python3, 安装django,用过镜像模块安装系统,也可以解决环境依赖问题.

    14,docker的三大基本概念

    1. 容器(container)相当于class()实例化一个对象
    2. 镜像(image)相当于class一个类
    3. 仓库(repository,存放镜像文件的地方)

    15,centos安装docker

    1. 编译安装,源码安装
    2. yum安装,如果网速太慢,可以选择阿里云的源,缺点就是版本低,可以选择aliyun的yum源,docker就是存在于epel源中,如果网速够快,安装官方源
      1. yum install docker* docker-* -y  #安装docker服务器
      2. 启动docker:
        • systemctl start docker
        • systemctl status docker
      3. 查看docker是否正确运行
        • docker version
      4. 简单使用docker
        • docker search hello-world
        • docker pull hello-world
        • docker image ls   #  查看镜像
    3. docker容器的基本操作
      1. 启动docker容器
        • docker start 容器id
      2. 暂停docker容器
        • docker stop 容器id
      3. 进入容器
        • docker exec -it 容器id
          • -i 交互式操作
          • -t 开启一个终端
      4. 创建容器实例
        • docker run 镜像名
      5. 删除容器记录,必须提前docker stop 容器id, 只能杀死已经停掉的容器
        • docker rm 容器id
      6. 查看容器正在运行的记录
        • docker ps  
      7. 显示所有容器记录的号
        • docker ps -aq
          • -a显示所有容器记录
          • -q显示容器id
      8. 一次性删除所有容器记录
        • docker rm `docker ps -aq`
      9. 查看容器正在运行的记录
        • docker container ls
      10. 容器id记录,提交这个容器,创建一个新的镜像
        • docker commit
      11. 查看容器运行日志
        • docker logs
          • -f 不间断打印容器日志
      12. 查看容器的端口映射关系(外部访问到容器内的端口)
        • docker run -d centos -P
        • docker port
          • -d 后台运行
          • -p 随机映射端口
          • -P 9000(宿主机):5000(容器内)
          • --name 给创建的容器记录,添加别名
    4. docker容器镜像的命令
      1. 查看镜像运行状况
        • docker image ls
        • docker images
      2. docker仓库, dockerhub
        •  docker pull 镜像名
      3. 把本地的镜像推送到dockerhub仓库
        • docker push 镜像名
      4. 搜索镜像
        • docker search 镜像名
      5. 删除镜像
        • docker rmi
      6. 查看docker版本,查看打匹配server和client两个端
        • docker version
      7. 启动docker
        • systemctl start docker
      8. 导出镜像
        • docker save 镜像名  > /data/centos.tar.gz
      9. 导入镜像
        • docker load < /data/centos.tar.gz
      10. 运行镜像文件,产生一个容器实例
        • docker run 镜像名 

    16,容器内应用,外部也是可以访问的,通过-p参数进行端口映射

    1. 下载镜像
      • docker pull training/webapp
    2. 运行镜像,产生容器记录
      • docker run -d -P 镜像id python app.py
        • -d 后台运行
        • -P 将容器内的5000端口随机映射到宿主机的一个端口
  • 相关阅读:
    Enterprise Library 4.1 Data Access Block 快速使用图文笔记
    敏捷开发(名字起得很帅,很忽悠人)原则 括号里面加了自己的理解笔记
    与弟弟谈话的摘要
    练习:选头像控件
    [转]保护你的flash(as3)程序基于socket方式传送swf文件
    Silverlight 又多了一套skin
    Silverlight制作逐帧动画
    Silverlight Spy 2 源代码查看器
    跨平台开发silverlight
    Silverlight 2 搜索照片 Live
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/10265328.html
Copyright © 2020-2023  润新知