rabbitmq集群

1、解析

vim /etc/hosts

192.168.11.199 master
192.168.11.200 slave

2、删除旧的rabbitmq数据,重新启动生成

rm -rf /opt/oatos/component/rabbitmq/mnesia/*

systemctl start rabbitmq

两台机器的.erlang.cookie保持一致

/opt/oatos/component/rabbitmq/.erlang.cookie

3、在master上操作加入集群

1
2
3
4
5
6
7
8
9
10
11
12
1、停止服务
/opt/oatos/component/rabbitmq/sbin/rabbitmqctl stop_app
2、重置状态
/opt/oatos/component/rabbitmq/sbin/rabbitmqctl reset
3、加入集群
/opt/oatos/component/rabbitmq/sbin/rabbitmqctl join_cluster rabbit@slave
4、启动服务
/opt/oatos/component/rabbitmq/sbin/rabbitmqctl start_app
5、查看集群状态
/opt/oatos/component/rabbitmq/sbin/rabbitmqctl cluster_status
6、将集群策略设置为镜像同步队列
/opt/oatos/component/rabbitmq/sbin/rabbitmqctl set_policy ha-all '^' '{"ha-mode":"all","ha-sync-mode":"automatic"}'

Elasticsearch集群

1、master上启一台ES,为数据节点

修改elasticsearch.yml配置文件

1
2
discovery.seed_hosts: ["192.168.11.199:9300", "192.168.11.200:9300","192.168.11.200:9500"]
cluster.initial_master_nodes: ["estiebreaker","${HOSTNAME}"]

把/opt/oatos/component/elasticsearch/config/elastic-certificates.p12证书文件拷贝到slave上的两台服务的config下

2、slave上启两台ES,一台作为选举节点(9400,9500),一台为数据节点(9200,9300)

rm -rf /opt/oatos/component/elasticsearch/data/*

estiebreaker:

1
2
discovery.seed_hosts: ["192.168.11.199:9300", "192.168.11.200:9300","192.168.11.200:9500"]
cluster.initial_master_nodes: ["estiebreaker"]

elasticsearch

1
2
discovery.seed_hosts: ["192.168.11.199:9300", "192.168.11.200:9300","192.168.11.200:9500"]
cluster.initial_master_nodes: ["${HOSTNAME}"]

3、重启服务即可

验证集群状态

curl -u elastic:oatos@elastic http://127.0.0.1:9200/_cluster/health?pretty

Mariadb双主配置

1、修改配置文件my.cnf

1
2
3
4
5
6
7
8
9
10
11
master:

server-id=1
auto_increment_increment=2
auto_increment_offset=1

slave:

server-id=2
auto_increment_increment=2
auto_increment_offset=2

2、mysql操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
master:
1、添加同步账号
GRANT ALL PRIVILEGES ON *.* TO tongbu@'192.168.11.200' IDENTIFIED BY 'oatos@mysql';
2、停止slave
STOP SLAVE; RESET SLAVE;
3、获取slave上的binlog文件和log—pos位置,在slave上执行show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 342 | | |
+------------------+----------+--------------+------------------+
CHANGE MASTER TO MASTER_HOST='192.168.11.200', MASTER_USER='tongbu', MASTER_PASSWORD='oatos@mysql', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=342;
4、启动slave
START SLAVE;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
slave:
1、添加同步账号
GRANT ALL PRIVILEGES ON *.* TO tongbu@'192.168.11.199' IDENTIFIED BY 'oatos@mysql';
2、停止slave
STOP SLAVE; RESET SLAVE;
3、获取master上的binlog文件和log—pos位置,在master上执行show master status;
CHANGE MASTER TO MASTER_HOST='192.168.11.200', MASTER_USER='tongbu', MASTER_PASSWORD='oatos@mysql', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=342;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1010 | | |
+------------------+----------+--------------+------------------+
CHANGE MASTER TO MASTER_HOST='192.168.11.199', MASTER_USER='tongbu', MASTER_PASSWORD='oatos@mysql', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=1010;
4、启动slave
START SLAVE;

3、检查同步状态

show slave status\G

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Keepalived高可用

1、修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
master:

vrrp_instance web {
state BACKUP
interface ens192
virtual_router_id 129
mcast_src_ip 192.168.11.199
unicast_src_ip 192.168.11.199
priority 110
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass PASS
}

virtual_ipaddress {
192.168.11.201/24 dev ens192
}

notify_master /opt/oatos/component/keepalived/etc/notify_master.sh
notify_backup /opt/oatos/component/keepalived/etc/notify_backup.sh

}

slave:

vrrp_instance web {
state BACKUP
interface ens192
virtual_router_id 129
mcast_src_ip 192.168.11.200
unicast_src_ip 192.168.11.200
priority 101
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass PASS
}

virtual_ipaddress {
192.168.11.201/24 dev ens192
}

notify_master /opt/oatos/component/keepalived/etc/notify_master.sh
notify_backup /opt/oatos/component/keepalived/etc/notify_backup.sh
}

2、修改/opt/oatos/.oatos文件

1
2
3
4
OATOS_INSTALL_FLAG=ha
OATOS_REMOTE_IP=192.168.11.199
OATOS_VIRTUAL_IP=192.168.11.201
OATOS_VIRTUAL_ROUTER_ID=129 # 主从的id要一致

3、启动服务

验证vip是否在master上,master上的redis的status是否为master

master宕机后,slave是否能获取vip,slave上的redis的status是否切换为master

Minio桶复制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
master:

1、下载同步策略
wget -O ReplicationAdminPolicy.json https://min.io/docs/minio/linux/examples/ReplicationAdminPolicy.json --no-check-certificate
2、添加策略到minio
mc admin policy add oatosminio ReplicationAdminPolicy ReplicationAdminPolicy.json
3、添加用户
mc admin user add oatosminio oatos oatos@123
4、授予用户同步策略
mc admin policy set oatosminio ReplicationAdminPolicy user=oatos
5、开启桶版本管理
mc version enable oatosminio/oatos-private
6、为同步远程桶创建一个复制目标

mc admin bucket remote add oatosminio/oatos-private http://admin:admin@123@192.168.11.200:9000/oatos-private --service "replication"

Remote ARN = `arn:minio:replication::f9ddfaec-d6cf-44ad-8743-223e9cccf6c0:oatos-private`.

mc replicate add oatosminio/oatos-private --remote-bucket 'arn:minio:replication::f9ddfaec-d6cf-44ad-8743-223e9cccf6c0:oatos-private' --replicate "delete,delete-marker,existing-objects"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
slave:

1、下载同步策略
wget -O ReplicationAdminPolicy.json https://min.io/docs/minio/linux/examples/ReplicationAdminPolicy.json --no-check-certificate
2、添加策略到minio
mc admin policy add oatosminio ReplicationAdminPolicy ReplicationAdminPolicy.json
3、添加用户
mc admin user add oatosminio oatos oatos@123
4、授予用户同步策略
mc admin policy set oatosminio ReplicationAdminPolicy user=oatos
5、开启桶版本管理
mc version enable oatosminio/oatos-private
6、为同步远程桶创建一个复制目标

mc admin bucket remote add oatosminio/oatos-private http://admin:admin@123@192.168.11.199:9000/oatos-private --service "replication"

Remote ARN = `arn:minio:replication::ed5a46a6-43fd-47e1-be82-4b54e0e389df:oatos-private`.

mc replicate add oatosminio/oatos-private --remote-bucket 'arn:minio:replication::f9ddfaec-d6cf-44ad-8743-223e9cccf6c0:oatos-private' --replicate "delete,delete-marker,existing-objects"

Api/Job配置

1、把配置文件里的redis配置为虚拟VIP地址

api:/opt/oatos/component/api/config/application-service-private.yml

job:/opt/oatos/component/api/config/application-service-private.yml

Nginx配置

1、upstream.conf增加为两台api地址

1
2
3
4
5
upstream app_servers {
server 192.168.11.199:8080;
server 192.168.11.200:8080;
hash $cookie_jsessionid;
}