RabbitMQ镜像集群部署

以下为准备的服务器信息

服务器ip 服务器名称
192.168.19.10 mq01
192.168.19.11 mq02

在两台服务器分别安装 RabbitMQ 参考 rabbitmq安装与使用


在两台服务器里面的 ‘/etc/hosts’ 里面绑定以下内容

192.168.19.10 mq01
192.168.19.11 mq02

修改 “/var/lib/rabbitmq/.erlang.cookie” 里面的内容,保证 里面的内容一致,并且权限为 400


在第二台服务器里面运行以下命令,将第二台服务器加入到集群中

service rabbitmq-server restart
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@mq01
rabbitmqctl start_app

使用以下命令给 test 创建一个镜像集群

rabbitmqctl add_vhost test
rabbitmqctl set_policy -p test ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

节点的移除使用以下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

参考链接: https://www.jianshu.com/p/a031c7d53333

使用git方式更新还原代码脚本

  • 因为工作需要,需要使用shell通过git来更新还原代码
#/bin/bash
CURRENTTIME=`date +%Y%m%d%H%M`
ADMINDIR=/data/develop/hicoopay/admin/
ADMINBACKUPDIR=/root/backup/admin/

ADSDIR=/data/develop/hicoopay/ads/
ADSBACKUPDIR=/root/backup/ads/

update_admin(){
    [ ! -d ${ADMINBACKUPDIR} ] && mkdir -p ${ADMINBACKUPDIR}
    rsync -avz  --exclude=runtime/logs ${ADMINDIR}  ${ADMINBACKUPDIR}${CURRENTTIME}
    cd ${ADMINDIR}
    git checkout . && git pull
}

update_ads(){
    [ ! -d ${ADSBACKUPDIR} ] && mkdir -p ${ADSBACKUPDIR}
    rsync -avz  --exclude=storage/logs ${ADSDIR}  ${ADSBACKUPDIR}${CURRENTTIME}
    cd ${ADSDIR}
    git checkout . && git pull
}

rollback_admin(){
    echo -e "\033[33m 选择你需要还原的日期  :  \033[0m"
    select var in `ls ${ADMINBACKUPDIR}`
    do
        rsync -avz  --delete --exclude=runtime/logs ${ADMINBACKUPDIR}${var}/ ${ADMINDIR} 
        exit
    done
}

rollback_ads(){
    echo -e "\033[33m 选择你需要还原的日期  :  \033[0m"
    select var in `ls ${ADSBACKUPDIR}`
    do
        rsync -avz  --delete --exclude=storage/logs ${ADSBACKUPDIR}${var}/ ${ADSDIR} 
        exit
    done
}

admin(){
    echo -e "\033[32m 选择你是要更新还是回滚  :  \033[0m"
    select i in "update" "rollback" "Exit"
    do 
        case $i in
        "update")
            update_admin
            exit
            ;;
        "rollback")
            rollback_admin
            exit
            ;;
        "Exit")
            exit
            ;;
        *)
            echo "Please choose 1 || 2 || 3"
            ;;
        esac
    done 
}

ads(){
    echo -e "\033[32m 选择你是要更新还是回滚  :  \033[0m"
    select i in "update" "rollback" "Exit"
    do 
        case $i in
        "update")
            update_ads
            exit
            ;;
        "rollback")
            rollback_ads
            exit
            ;;
        "Exit")
            exit
            ;;
        *)
            echo "Please choose 1 || 2 || 3"
            ;;
        esac
    done 
}

echo -e "\033[32m 选择你需要操作的项目  :  \033[0m"
select var in "admin" "ads" "Exit"
do
    case $var in
        "admin")
            admin
            exit
            ;;
        "ads")
            ads
            exit
            ;;
        "Exit")
            exit
            ;;
        *)
            echo "Please chose 1 || 2 || 3 "
            ;;
    esac
done

unbt 设备相关的一些操作

ap相关操作
  1. ubnt 默认登陆的用户名和密码均为: ubnt

  2. 重置unifi ap 配置,使用ssh登陆到ap,运行以下命令:

syswrapper.sh restore-default
  1. 手动指定unifi ap的控制器,运行以下命令(运行以下命令之后需要在控制器中批准这个ap的接入):
set-inform http://ip-of-controller:8080/inform

 
 

ac相关操作
  1. 由于ubnt官方只提供了deb的包,centos下面没有官方包,所以这儿使用docker的方式来安装,docker安装参考: Linux系统安装docker

  2. 使用以下命令运行docker:

docker run -d  -p 8080:8080 -p 8443:8443 -p 3478:3478/udp -e TZ='Asia/Chongqing' -v ~/unifi:/unifi --name unifi jacobalberty/unifi
  1. 运行以上命令之后,需要放开防火墙的tcp/8443 tcp/8080 udb/3478 对外访问的权限

  2. 使用”htttps://your-ip-address:8443″登陆控制器,账号需要先在ubnt官方申请一个

kafka集群安装

  1. 使用的测试环境如下所示,需要注意的是zookeeper的版本需要和kafka的版本一致,不然会报错:
ip 系统版本 主机名 zookeeper版本 kafka版本 java版本
172.16.50.61 centos7 kafka_zk_01 3.5.7 kafka_2.12-2.5.0 13.0.2
172.16.50.62 centos7 kafka_zk_02 3.5.7 kafka_2.12-2.5.0 13.0.2
172.16.50.63 centos7 kafka_zk_03 3.5.7 kafka_2.12-2.5.0 13.0.2
  1. 安装java环境,参考 centos7 安装手动安装java环境
  2. 安装 zookeeper ,参考 zookeeper集群搭建
  3. 在这三台服务器上面,安装kafka,配置文件”/opt/kafka/config/server.properties”修改成如下
broker.id=1 #kafka_zk_02节点修改为2,kafka_zk_03的节点修改为3
listeners=PLAINTEXT://172.16.50.61:9092 #修改Kafka的IP地址为各自节点的本地地址
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/kafka/logs  #日志目录需要提前建好
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=72
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=172.16.50.61:2181,172.16.50.62:2181,172.16.50.63:2181 # zookeeper集群的连接地址
delete.topic.enable=true
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=3000

  1. 最后启动kafka,可以参考 使用supervisor运行kafka