HAProxy简介
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

一、安装

  1. #gcc 安装
  2. yum install gcc-c++
  1. #下载
  2. wget http://fossies.org/linux/misc/haproxy-1.6.9.tar.gz
  3.  
  4. #解压
  5. tar -zxvf haproxy-1.6..tar.gz
  6. cd haproxy-1.6.
  7.  
  8. #安装
  9. make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy
  10. make install PREFIX=/usr/local/haproxy

#参数说明
TARGET=linux26 #内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;kernel大于2.6.28的用:TARGET=linux2628
ARCH=x86_64 #系统位数
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径

二、配置(自己创建)
【/usr/local/haproxy/haproxy.cfg】

  1. global
  2. log 127.0.0.1 local0
  3. #log 127.0.0.1 local1 notice
  4. #log loghost local0 info
  5. maxconn
  6. chroot /usr/local/haproxy
  7. pidfile /usr/data/haproxy/haproxy.pid
  8. uid
  9. gid
  10. daemon
  11. #debug
  12. #quiet
  13.  
  14. defaults
  15. log global
  16. mode tcp
  17. option abortonclose
  18. option redispatch
  19. retries
  20. maxconn
  21. timeout connect
  22. timeout client
  23. timeout server
  24.  
  25. listen proxy_status
  26. bind :
  27. mode tcp
  28. balance roundrobin
  29. server mycat_1 192.168.1.105: check inter 10s
  30. server mycat_2 192.168.1.60: check inter 10s
  31.  
  32. frontend admin_stats
  33. bind :
  34. mode http
  35. stats enable
  36. option httplog
  37. maxconn
  38. stats refresh 30s
  39. stats uri /admin
  40. stats auth mldn:java
  41. stats hide-version
  42. stats admin if TRUE

a、创建一个haproxy的数据保存路径:mkdir -p /usr/data/haproxy/
b、找到listen proxy_status配置mycat信息

三、启动

  1. /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

四、查看状态

  1. ps -ef|grep haproxy
  2.  
  3. http://192.168.1.105:7777/admin

#说明:
7777即haproxy配置文件中监听端口
/admin 即haproxy的访问路径
用户名/密码:mldn/java

五、mycat记得启动

六、通过haproxy进行登录

  1. 192.168.1.(mysql master)上登录haproxy
  2. mysql -uroot -p123456 -h192.168.1. -P48066 -DTESTDB

#参数说明
-uroot:mycat用户名
-p123456:mycat密码
-h192.168.1.105:haproxy ip
-P48066:haproxy端口
-DTESTDB:mycat逻辑库

基于HA机制的MyCat架构——配置HAProxy的更多相关文章

  1. HA机制下的Hadoop配置

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://www.cnblogs.com/sdksdk0/p/5585355.html 作者: 朱培    ID:sdksdk0 ----- ...

  2. 基于HA机制的Nginx配置实现

    Keepalived是一个基于VRRP协议来实现服务高可用方案.下载地址:http://www.keepalived.org/ keepalived-1.2.24.tar.gz VRRP协议:虚拟路由 ...

  3. 基于token机制鉴权架构

    常见的鉴权方式有两种,一种是基于session,另一种是基于token方式的鉴权,我们来浅谈一下两种 鉴权方式的区别. 两种鉴权方式对比 session 安全性:session是基于cookie进行用 ...

  4. Hadoop_HDFS架构和HA机制

    Hadoop学习笔记总结 01.HDFS架构 1. NameNode和ResourceManager NameNode负责HDFS,从节点是DataNode:ResourceManager负责MapR ...

  5. 配置percona mysql server 5.7基于gtid主主复制架构

    配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...

  6. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  7. HDFS的HA机制

    传统的HDFS机制如下图所示: 也就是存在一个NameNode,一个SecondaryNameNode,然后若干个DataNode.这样的机制虽然元数据的可靠性得到了保证(靠edits,fsimage ...

  8. RabbitMQ集群安装配置+HAproxy+Keepalived高可用

    RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...

  9. Mycat 中间件配置初探与入门操作

    Mycat中间件配置初探与入门操作 By:授客 QQ:1033553122 实践环境 Mycat-server-1.5.1-RELEASE-20161130213509-win.tar.gz 下载地址 ...

随机推荐

  1. java代码执行顺序

    class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println(&quo ...

  2. Ng第四课:多变量线性回归(Linear Regression with Multiple Variables)

    4.1  多维特征 4.2  多变量梯度下降 4.3  梯度下降法实践 1-特征缩放 4.4  梯度下降法实践 2-学习率 4.5  特征和多项式回归 4.6  正规方程 4.7  正规方程及不可逆性 ...

  3. 在aliyun遇到一些问题

    1. 删除现有网站报错:“applicationhost.config 错误 无法写入配置文件” 解决办法:用管理员身份打开IIS. 2. IIS上部署MVC网站,打开后500错误:处理程序“Exte ...

  4. hdu2710 Max Factor

    题目 //下面这个是最先用的方法,因为学姐先讲完这个,所以懒得写代码,就将就着这个用,结果搞了老半天,还是错了,心累.. #include<stdio.h> #include<str ...

  5. python 引入本地module

    我们经常会遇到调用组内其他成员开发的python脚本的情况, 这时,需要借助如下代码: import sys sys.path.append('/./..') #/./.. 是需要引入的module的 ...

  6. unigui如何把webApp的子功能映射到微信公众号菜单

    只需要用UniApplication.Parameters.Values[‘xxx’]读取url的参数然后调用就可以 例如:要打开公众号菜单的取样送检指南查询模块,在自定义菜单设定:http://ww ...

  7. Delphi XE3写DLL,用Delphi7调用,报错!

    http://bbs.csdn.net/topics/390870532 用delphi xe3写的DLL,delphi7调用,参数都是PAnsiChar,DLL里的函数接收delphi7传的入参,没 ...

  8. c# List使用中遇到的问题

    最近在项目上写的方法,想通过减少访问数据层,将需要重复调用的值存入List,无意中碰到的一个巨坑,至今仍不明所以,在此写出来,一来是看看有没有同道中人,二来是看看有没有大牛能解惑. 逻辑如下: 1.从 ...

  9. 介绍 Scratch 3.0:扩展编码创造力

    在过去十年中,全世界数百万儿童使用Scratch编写自己的互动游戏,故事,动画等. 这种磅礴的创造力激励我们继续扩展和改进Scratch,让世界各地的孩子都有新的机会用新技术创造性地表达自己. 今天, ...

  10. Strust2总结

    1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层).业务逻辑层.数据持久层.[其中WEB层会使用前端控制器模式] MV ...