HAproxy + Docker 搭建 Tomcat高可用实验环境

需求:现有一个对外的web服务需要实行高可用HA

要求: 应用版本统一部署

技术选型:HAproxy + Docker

容器节点数: 2个够了

name : tocmat-01 端口18080

name :  tocmat-02 端口28080 


Docker image使用tomcat:latest 。。评分最高那个

创建命令:

docker run --name tocmat-01\

-v /home/user/tomcat_data/conf:/usr/local/tomcat/conf \

-v /home/user/tomcat_data/webapps:/usr/local/tomcat/webapps \

-p 18080:8080 \

-it

tomcat

说明:

使用-v 映射本地host的设置文件夹和应用部署目录到容器,容器启动的时候就会自动加载文件夹里面的应用

另外,使用-p 映射默认端口8080到host的端口作为haproxy访问的入口


HAproxy设置:

root@ubuntu:~# cat /usr/local/haproxy/haproxy.cfg

#全局配置

global

#设置日志

log 127.0.0.1 local3 info

chroot /usr/local/haproxy

#用户与用户组

#user haproxy

#group haproxy

#守护进程启动

daemon

#最大连接数

maxconn 4000

#默认配置

defaults

log global

mode http

option httplog

option dontlognull

timeout connect 5000

timeout client 50000

timeout server 50000

#前端配置,http_front名称可自定义

frontend http_front

# 发起http请求道80端口,会被转发到设置的ip及端口

bind *:8088

#haproxy的状态管理页面,通过/haproxy?stats来访问

stats uri /haproxy?stats

stats auth admin:admin

stats admin if TRUE

default_backend http_back

#后端配置,http_back名称可自定义

backend http_back

#负载均衡方式

#source 根据请求源IP

#static-rr 根据权重

#leastconn 最少连接者先处理

#uri 根据请求的uri

#url_param 根据请求的url参数

#rdp-cookie 据据cookie(name)来锁定并哈希每一次请求

#hdr(name) 根据HTTP请求头来锁定每一次HTTP请求

#roundrobin 轮询方式

balance roundrobin

#设置健康检查页面

option httpchk GET /index.jsp

#传递客户端真实IP

option forwardfor header X-Forwarded-For

#inter 10000 健康检查时间间隔2秒

#rise 3 检测多少次才认为是正常的

#fall 3 失败多少次才认为是不可用的

# weight 30 权重

# 需要转发的ip及端口,因为容器在本地,所以用127.0.0.1也可以

server node1 127.0.0.1:18080 check inter 10000 rise 3 fall 3 weight 30

server node2 127.0.0.1:28080 check inter 10000 rise 3 fall 3 weight 30

userlist L1

group G1 users tiger,scott

group G2 users xdb,scott

user tiger insecure-password tiger

user scott insecure-password scott

user xdb insecure-password xdb


耶,页面出来了

。。。页面出来了,但是怎么知道LB和HA有没有生效呢

打开统计页面试试:



如图,看到alive的node 有两个

二话不说,部署一个probe到tomcat试试:

对的,我就是部署这个:

psi/probe



留意头顶上的机器名。。。。


tomcat_01/tomcat_02之间自动切换,现在证明LB工作得很好

看看HA 怎样:

关掉一个tomcat试试?


关掉了TOMCAT_02


HAproxy已经探测到有一台机器挂了


多次刷新都没有出现错误,但是只能显示tomcat_01的页面,failover成功,这就是我们想要的

下一步,测试auto recovery

把tomcat重新启动:



又把container起来


心跳探测成功但是未能确认稳定的状态,显示黄色


累计足够次数的心跳检测,恢复到绿色正常状态


再次刷新probe:

只能告诉大家又能正常访问,流向轮流派发到两个tomcat了,懒得截图了


结论:Auto Recovery成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容