window平台如何搭建Mysql集群

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

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

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

       下载地址:http://dev.mysql.com/downloads/cluster/

        三种节点:

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

       2.SQL节点(mysql Service)

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

1.管理节点

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

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

      

       对于图的理解:

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

       好处

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

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

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

2.SQL节点

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

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

3.数据节点

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

  PS:

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

总结:

            参考资料:

                        如何在Linux下搭建mysql 集群:http://www.cnblogs.com/seesea125/archive/2012/03/28/2421277.html

                        搭建问题:http://bbs.chinaunix.net/thread-1841962-1-1.html

        对于搭建集群的详细步骤这里不在多说,已经整理成文档,下载地址:


转载于:https://www.cnblogs.com/lilongsheng1125/p/4978498.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
db服务器连接mysql+redis高可用高性能框架干货1、使用c++语言,vs2019开发垮平台[windows和linux]连接MySql和redis框架。2、使用MySql持久化玩家数据,redis做玩家数据缓存层,redis不做数据持久化。mysql搭配redis工作效率非常高效,就好比男女搭配干活不累,没有redis,mysql也能独立很好的完成用户读写请求。有了redis,用户访问数据的效率更高,时间更短,快速的完成请求。3、讲解如何保持mysql和redis数据强一致性策略,并在代码里实现。每次启动redis,使用管道技术,从mysql批量导入活跃用户数据到redis中,并设置过期时间.4、教程使用线程池技术,每个线程拥有自己独立的数据,线程绑定类。每一个实例就包含一个线程每个线程数据里包含:mysql连接器、redis连接器、内存回收池、安全的串行队列、条件变量、互斥量保证线程内的数据安全。5、工作原理:没有请求时,各个工作线程处于休眠状态。有读写请求时,从线程池获取一个线程,添加读写请求,把数据推送到线程工作队列中。然后工作线程获取队列的数据,进行串行工作任务安排,进行mysql数据库读写操作,以及redis读写数据操作,当完成工作任务时,执行下一个工作任务,同时把处理结果推送到逻辑线程,把数据给用户。6、用户读数据策略:用户获取数据首先是先从redis查找数据,redis命中,返回数据给玩家,redis命中失败,mysql中查找数据,然后写入数据到redis中,返回数据给用户。7、用户写数据策略:用户先从redis中删除数据,然后写数据到mysql中,最后再把数据写入到redis中,保持数据一致性。8、教程是一个干货教程,不是新手教程,mysql基础语法讲解的少,redis有讲解基础系列。教程讲解的是如何搭建一个支持高并发,高性能的读写数据库框架,使用mysql+redis搭配的高可用、高性能框架。该套框架在多个项目使用过,也在棋牌类项目里面使用过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值