http://blog.csdn.net/xluren/article/details/39137757
http://blog.csdn.net/xluren/article/details/39153529
1.1 环境描述
mysql5
OS: Oracle Linux Server release 6.3
Mycat server1:10.0.30.134:8806
Mycat server2:10.0.30.139:8806
Haproxy server:10.0.30.139: 8098
前期未启用VIP,所以先用Mycat server2的8098端口作为haproxy的对外接口
1.2 Mycat 安装
在Mycat server1及Mycat server2上进行安装Mycat
Linux(Unix)下,建议放在/usr/local/MyCAT目录下,如下面类似的:
useradd mycat
chown –R mycat.mycat /usr/local/mycat
启动mycat
/usr/local/mycat/bin/mycat start
1.3 Haproxy 的安装
1、添加用户并下载相关软件
useradd haproxy
#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz
# tar zcvf haproxy-1.3.20.tar.gz
# cd haproxy-1.3.20
# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86_64
# make install
2、安装完毕后,进入安装目录创建配置文件
# cd /usr/local/haproxy
#chown –R haproxy.haproxy *
# vi haproxy.cfg
global
log 127.0.0.1 local0 ##记日志的功能
maxconn 4096
chroot /usr/local/haproxy
user haproxy
group haproxy
daemon
defaults
log global
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen admin_stats 10.0.30.139:48800 ##由于没有启用VIP,暂时用其中一台的IP和新端口
stats uri /admin-status ##统计页面
stats auth admin:admin
mode http
option httplog
listen allmycat 10.0.30.139:8098
mode tcp
option tcplog
option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
balance roundrobin
server mycat_134 10.0.30.134:8066 check port 48700 inter 5s rise 2 fall 3
server mycat_139 10.0.30.139:8066 check port 48700 inter 5s rise 2 fall 3
srvtimeout 20000
默认haproxy是不记录日志的,为了记录日志还需要配置syslog模块,在oracle linux下是rsyslogd服务,yum –y install rsyslog 先安装rsyslog,然后
#vi /etc/rsyslog.d/haproxy.conf
加入以下内容
$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/haproxy.log ##对应haproxy.cfg 的日志记录选项
保存,重启
service rsyslog restart
现在你就可以看到日志了
在Mycat server1 Mycat server2上都需要添加检测端口48700的脚本,为此需要用到xinetd
首先在xinetd目录下面增加脚本与端口的映射配置文件
#vim /etc/xinetd.d/mycat_status
service mycat_status
{
flags = REUSE
socket_type = stream
port = 48700
wait = no
user = nobody
server = /usr/local/bin/mycat_status
log_on_failure += USERID
disable = no
}
再增加/usr/local/bin/mycat_status用于检测mycat是否运行的脚本
#vim /usr/local/bin/mycat_status
#!/bin/bash
#/usr/local/bin/mycat_status.sh
# This script checks if a mycat server is healthy running on localhost. It will
# return:
#
# "HTTP/1.x 200 OK\r" (if mycat is running smoothly)
#
# "HTTP/1.x 503 Internal Server Error\r" (else)
mycat=`/usr/local/mycat/bin/mycat status | grep 'not running' | wc -l`
if [ "$mycat" = "0" ];
then
/bin/echo -e "HTTP/1.1 200 OK\r\n"
else
/bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n"
fi
我是根据mycat status 返回的状态来判定mycat是否在运行的,也可以直接通过mysql –P8806 –e”select user()” 等直接执行sql的形式来检测
重启xinetd服务
#service xinetd restart
查看48700端口是否监听了
#netstat -antup|grep 48700
如上图则端口的配置正确了
启动haproxy
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
为了使用方便可以增加一个启动,停止haproxy的脚本
启动脚本starthap内容如下
#!/bin/sh
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg &
停止脚本stophap内容如下
#!/bin/sh
ps -ef | grep sbin/haproxy | grep -v grep |awk '{print $2}'|xargs kill -s 9
分别赋予启动权限
chmod +x starthap
chmod +x stophap
启动后可以通过http://10.0.30.139:48800/admin-status (用户名密码都是admin haproxy.cnfg配置的)
配置完成
相关推荐
`mycat.properties` 和相关的 SQL 脚本则用于配置 Mycat 的数据库连接、分片规则等。所有配置完成后,将这些文件分别放置在各服务器的相应目录下,启动服务即可。 总之,`keepalived+haproxy+mycat` 的组合为 MySQL...
确保Mycat的HA配置正确,如心跳检测、故障探测和切换策略,是保证系统稳定运行的重要环节。 7. **SQL兼容性** Mycat虽然支持多种数据库,但并非所有SQL特性都兼容。开发者需熟悉Mycat的SQL处理规则,避免使用不...
集成Mycat到Spring Boot应用的第一步是添加相关的依赖。在`pom.xml`文件中,你需要引入Spring Boot的starter-data-jpa依赖,以及Mycat的JDBC驱动。这样,你的应用就能通过JPA操作Mycat上的数据。 ```xml ...
MYCAT是一种开源的分布式数据库系统,它主要用于解决大数据量、高并发访问的问题,通过分库分表、读写分离等技术提升系统的可用性和性能。在本配置中,我们看到MYCAT是如何实现主从复制和读写分离的。 主从复制是...
Mycat高可用是通过KP+HA实现的,而MySQL高可用是通过Mycat实现的。下面将详细讲解Mycat高可用和Mycat实现MySQL高可用。 一、Mycat高可用 Mycat高可用是通过KP+HA实现的,KP(Keepalived+Pacemaker)是一种高可用...
总结:这份教程将详细介绍如何安装Mycat服务器,配置Keepalived和HAProxy实现高可用,解析Mycat的配置文件,以及如何使用Mycat的Web管理界面监控系统。通过实例,用户将学习如何在实际项目中部署和管理Mycat,从而...
总结来说,此指南详细介绍了如何在Oracle Linux环境下,利用HAproxy作为负载均衡器,Mycat作为数据库中间件,构建一个高可用的MySQL集群。通过这种方式,可以提高系统的稳定性和容错能力,同时提供良好的扩展性,以...
本文将详细介绍如何利用HAProxy、Keepalived以及MyCat这三个开源工具构建一个强大的高可用负载均衡集群。 #### 二、关键技术组件介绍 1. **HAProxy**:一个免费、快速且可靠的解决方案,用于提供高可用性、负载...
本文将详细介绍数据库中间件的概念、特性、架构模式、MyCAT中间件产品等方面的知识点。 一、什么是数据库中间件? 数据库中间件是一种位于应用程序和数据库之间的软件层,可以帮助应用程序和数据库之间的交互,...
- HA:High Availability,高可用性。 5. **各部署场景及配置方案** - **运行与支持环境**:MyCat通常运行在Linux环境下,需要兼容的Java运行环境(JRE或JDK)。 - **选取的原因**:MyCat支持MySQL协议,可透明...
HA-DataSource,作为Mycat的子项目,可以提供类似HAProxy的功能,直接在Java应用中实现高可用性,减少中间环节。 在MySQL的调优方面,首要任务是避免使用Swap内存,以减少性能损耗。对于MySQL 5.6及以上版本,可以...
### MySQL 高可用性 (HA) 技术详解 #### 一、MySQL 主从复制 **主从复制介绍** MySQL 的主从复制机制是其实现高可用性和数据冗余的关键特性之一。通过这一机制,可以在多台服务器之间同步数据,确保数据的一致性...
SAAS原型萨斯猫这是15年选择的预研方案,程序框架采用了spring,doubbo,mycat,mysql。整体方案采用mycat做为数据路由,由spring应用在执行SQL前加入mycat的路由注释解。以达到数据库动态切换的目的。但是在实践...
文章详细介绍了项目架构的演进方向,从传统的单台单体架构到多台单体架构、多台集群架构、集群高可用架构等,ครอบ盖了Nginx、Keepalived、LVS、CDN、Varnish、MySQL、Redis、ElasticSearch、Codis、MyCat等多种...
HDFS:H是hadoop 分布式文件系统 分布式文件系统。 Hdfs是Hadoop分布式文件系统的简称,它是Hadoop实现的一个分布式文件系统。 纱线:管理资源调度 mycat:中间件 ...MapReduce —– Ha
- MyCat:并非直接与MySQL Router和MaxScale竞争的中间件,而是主要用于数据分片的解决方案,可看作数据库的水平分片中间件。 - TDDL(Taobao Distributed Data Layer):是阿里巴巴开源的分布式数据库层,提供...
Java架构师在此领域的知识包括分布式一致性、CAP理论、分布式锁、分布式事务等,以及相关的中间件如Zookeeper、Dubbo和ServiceMesh。 高可用性(High Availability, HA)和高性能(High Performance, HP)是架构...
其次,高可用性(HA)是分布式系统设计的关键因素,目标是减少服务中断时间。业界常以"9"的数量级来衡量可用性,如四九(99.99%)代表极高的可用性,意味着每年的停机时间不超过几分钟。以百度为例,其高可用性使得...