几台服务器的架构的故事。

Hello,今天领导叫我们架构服务器,也给我们画了一些图告诉我们应该怎么架设。

不多说先上图,这里使用的阿里云的2台经典网络和2台专有网络进行搭建的。大概架构如下图。


几台服务器的架构的故事。_第1张图片




一.这里简单的说明下,经典网络和专有网络的区别。


1.经典网络:阿里云统一分配的内网地址和公网地址,不能绑定弹性IP。

2.专有网络:能够绑定弹性IP,自己分配路由和交换机,隔离阿里网段,更加安全。

大概的购买配置是下面这样滴。


几台服务器的架构的故事。_第2张图片

关于ClassicLink的配置问题,也就是解决经典网络和专有网络互通的问题,自己去阿里云学习下。这里就不多介绍。

这里贴出一个链接:help.aliyun.com/openSearchKnowledgeList.html


二.配置过程。

这里我们的4台服务器采用的是ubuntu 16.04.

1.我们的预期,是想做到master 为主,slave为从数据库,master里面也加一个redis,web走mater进行客户端交互,console读写分离。

2.redis的安装过程超级简单。

sudo apt-get install redis-server                              

3.现在来配置主从数据库

这里的列子.

(1).主从配置。

masterIP:192.168.1.22

slaveIP:192.168.2.33

(2).主数据库。

编辑 etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.1.22 #your master ip

server-id = 1 #在master-slave架构中,每台机器节点都需要有唯一的

server-id log_bin = /var/log/mysql/mysql-bin.log #开启binlog

重新service mysql restart

登录到数据库。

mysql> CREATE USER 'slave1'@'192.168.2.33' IDENTIFIED BY 'slavepass';

Query OK, 0 rows affected (0.00 sec)

##为slave1赋予REPLICATION SLAVE权限。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.2.33';

Query OK, 0 rows affected (0.00 sec)

先加上读锁。

。mysql> FLUSH TABLES WITH READ LOCK;

Query OK, 0 rows affected (0.00 sec)

再查看状态信息

mysql> SHOW MASTER STATUS;

如下图


几台服务器的架构的故事。_第3张图片

然后再关闭读锁。

UNLOCK TABLES;

再把主数据库的数据dump下来保持主从数据库一直。

mysql -u root -p < /home/ubuntu/dbdump.sql

接着我用filezilla导入slave数据库。


(3).从数据库配置。

编辑 etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.2.33 #your slave ip

server-id = 2 #master-slave结构中,唯一的

server-id log_bin = /var/log/mysql/mysql-bin.log #开启binlog

然后再重启Mysql   service mysql restart

然后再导入刚才从master导入的数据库。

mysql -u root -p < /home/ubuntu/dbdump.sql

(4).建立连接。

 mysql> STOP SLAVE;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CHANGE MASTER TO

-> MASTER_HOST='192.168.1.22',

-> MASTER_USER='slave1',

-> MASTER_PASSWORD='slavepass',

-> MASTER_LOG_FILE='mysql-bin.000001',

-> MASTER_LOG_POS=613;

Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> START SLAVE;

Query OK, 0 rows affected (0.00 sec)

(5).一些解释。

MASTER_LOG_FILE='mysql-bin.000001'与MASTER_LOG_POS=613的值,是从上面的SHOW MASTER STATUS得到的。

OK了。

(6).最后可以把从数据库里面slave1这个权限设置成只读权限。

msyql>grant select on laravel.*  to slave1@ 192.168.1.22 ’’

这里的laravel就是主数据库建立过来,然后从数据库用slave1进行只能select查询就OK了。


(7).附上原文链接。

www.opsdash.com/blog/mysql-replication-howto.html

你可能感兴趣的:(几台服务器的架构的故事。)