window平台如何搭建Mysql集群

为了提高系统的可用性实现系统7*24小时运行的目标,我们的项目搭建了一个mysql集群来增加系统的可靠性,下面说一下项目中mysql集群的搭建过程。

先谈谈对于搭建各种集群、分布式、负载均衡的理解,一个高可用、高性能、伸缩性强的分布式系统并不是一蹴而就,一下搭出这样的架构也有点不可能,至少个人觉得对于系统的运行状况没有一个可靠地保证,你不能保证架构中不会出现什么纰漏之处,因此架构师也是一点一点成长起来的,在小的架构解决不了目前的问题时、在不断的高并发、每年的双十一等这样的问题中成长起来的。

在我们这个项目中注重高可用,当一台数据库服务器出现故障后不允许系统停止运行,也就是说需要多搭建几台服务器让它们可以自由切换,服务器集群很好的解决了我们对于高可用的需求。下面说一下我们是如何搭建mysql集群。

下载地址:

三种节点:

1.管理节点(即集群的核心应用)

2.SQL节点(mysql Service)

3.数据节点 (数据文件)

美高梅电子游戏 ,1.管理节点

它是整个集群环境的核心类似于集群中起调度作用的枢纽,由它来负责管理其它节点的开启、关闭等等,该节点也是从mysql
5.6版本之后才出现,可见数据库对于搭建集群这个方向正在提出新的需求和新的挑战,也许在之后的版本中搭建集群将变的非常简单,期待后续版本功能更强大。

开始对于是SQL 节点是什么?总有很多疑问,有没有必要从mysql
service中分离出来搭建完之后有点理解为什么要把服务器和数据分离,结合mysql集群部署图觉得有如下好处:

美高梅电子游戏 1

对于图的理解:

所有的SQL nodes、data nodes要看成一个整体对待,任意一个sql
node节点对data node的操作都是对所有data node节点的操作,会对所有的data
node产生影响,例如向集群中某一个数据插入数据,其它数据节点也会插入相同的数据。

好处

耦合性小:如果一个sql节点坏掉,不会影响这个节点下面的数据节点,它和数据节点一点关系也没有

同步问题:多个数据节点之间需要时刻同步数据

可用性最高:集群中只要有一个SQL节点、一个data节点可用,整个集群就是可用的,不需要考虑它们都部署在哪里。也就是说集群中各个节点之间是透明的谁也不知道谁,它们都由管理节点来协调管理。

2.SQL节点

即mysql
Service服务器,为数据库提供各种服务,如操作数据库、安全、备份、MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。

通过mysql 服务器来对数据进行管理、维护工作,这里就不在多说。

3.数据节点

用户的数据、数据库、表、视图、存储过程等都保存在数据节点中。

PS:

对于数据库集群通常需要上面三个节点,管理节点负责管理其它的节点,这三类节点可以任意部署在一台或者好几台电脑上,为了方便部署和管理我把服务节点和数据节点部署在一起,分别部署在两台电脑上,管理节点单独部署在一台电脑上,尽量不要让管理节点同数据节点、服务节点部署在一起,否则那台电脑坏掉后,其它节点就都不会运行了。

为了提高系统的可用性实现系统7*24小时运行的目标,我们的项目搭建了一个mysql集群来增加系统的可靠性,下面…

1.下载安装redis

(1)Redis官方不支持Windows,但是Microsoft Open Tech group在
GitHub上开发了一个Win64的版本,下载地址为:

https://github.com/MSOpenTech/redis/releases

解压后拷贝到自己的目录下:

例如我的path:G:\Tool\redis-windows-master

此时打开cmd命令窗口,换到Redis目录下,执行

redis-server redis.windows.conf

这时候默认的打开的redis是6379端口

(2)窗口不要关闭,再重新打开一个cmd窗口,连接Redis执行

redis-cli.exe -h 127.0.0.1 -p 6379

可以操作redis

美高梅电子游戏 2

  1. 安装Ruby并配置环境

(1)安装ruby的原因:

redis-cluster安装前需要安装ruby环境,搭建集群需要使用到官方提供的ruby脚本。

(2)安装Ruby,Windows可以安装RubyInstaller,下载地址:

http://railsinstaller.org/en

一直下一步安装完成会自动弹出一个cmd的黑色窗口,需要对Ruby进行配置。安装目录必须是英文的不能含有中文否则执行gem命令报错

(3)执行命令:

gem sources
–remove https://rubygems.org/删掉原来的源

gem sources
-a https://ruby.taobao.org添加淘宝源,注意为https,否则会找不到源

gem sources -l 查看现有的源

gem install redis  安装redis依赖

美高梅电子游戏 3

执行 gem install redis 出现 SSL Connect error时,是因为ruby 没有包含 SSL
证书,所以 https 的链接被服务器拒绝。

解决方法很简单,首先在这里下载证书http://curl.haxx.se/ca/cacert.pem,
然后再环境变量里设置 SSL_CERT_FILE 这个环境变量,并指向 cacert.pem
文件。

美高梅电子游戏 4

要让集群正常运作至少需要三个主节点,因此我们创建6个节点,三个主节点三个从节点,

参考:

美高梅电子游戏 5

将安装的redis文件夹中的redis.windows.conf以及redis-server,分别拷贝到新建的六个文件夹中

2). 更改配置

将六个文件夹下的redis.windows.conf文件中以下属性进行修改:

port 7001(对应文件夹的端口号)

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

3). 启动6个redis服务

美高梅电子游戏 6

其他几个启动方法如上图。

若嫌以后启动麻烦,可以自己编写一个启动redis集群的bat文件:

@echo off

start cmd /k “G:&&cd
G:\Tool\redis-windows-master\7001&&redis-server.exe
redis.windows.conf”

start cmd /k “G:&&cd
G:\Tool\redis-windows-master\7002&&redis-server.exe
redis.windows.conf”

start cmd /k “G:&&cd
G:\Tool\redis-windows-master\7003&&redis-server.exe
redis.windows.conf”

start cmd /k “G:&&cd
G:\Tool\redis-windows-master\7004&&redis-server.exe
redis.windows.conf”

start cmd /k “G:&&cd
G:\Tool\redis-windows-master\7005&&redis-server.exe
redis.windows.conf”

start cmd /k “G:&&cd
G:\Tool\redis-windows-master\7006&&redis-server.exe
redis.windows.conf”

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章