zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Haproxy+Keepalived+Jboss集群实施架构一例

架构集群 实施 Keepalived haproxy Jboss 一例
2023-09-14 09:01:02 时间


两台IBM x3650M3,操作系统CentOS5.9 x64 ,连接一台IBM DS3400存储,系统底层采用GFS文件系统实现文件共享,数据库是另一套独立的oracle rac集群,本架构无需考虑数据库的问题。    
GFS文件系统及相关配置见上一文IBM x3650M3+GFS+IPMI fence生产环境配置一例。本文是在上一文的基础上进行延伸。 两台服务器主机名分别为node01,node02,因为应用架构相关简单,而且服务器资源有限,通过两台服务器实现双机互备模式高可用性架构。本文出自:http://koumm.blog.51cto.com/

IBM x3650M3+GFS+IPMI fence生产环境配置一例   
http://koumm.blog.51cto.com/703525/1544971

架构图如下:

wKiom1P_Q97CwM_sAAJRJNxbE6Y045.jpg 

1. 网络环境及IP地址准备, CentOS5.9 x64 1) 节点1主机名: node01

说明:IBM服务器需要将专用IMM2口或标注有SYSTEM MGMT网口接入交换机, 与本地IP地址同段。

ipmi: 10.10.10.85/24   
eth1:  192.168.233.83/24    
eth1:0 10.10.10.87/24

 

2) 节点2主机名: node02

ipmi: 10.10.10.86/24   
eth1:  192.168.233.84/24    
eth1:0 10.10.10.88/24

 

3) node01, node02 hosts文件配置

# cat /etc/hosts

192.168.233.83  node01   
192.168.233.84  node02    
192.168.233.90  vip    
10.10.10.85     node01_ipmi    
10.10.10.86     node02_ipmi

 

二、双机Keepalived配置

实现一个VIP出现,出例采用VIP地址是192.168.233.90。

1.安装keepalived软件

说明:keepalive-1.2.12经过安装没有问题。

(1) 下载软件包并在node01,node02两个节点上安装
# make TARGET=linux26 PREFIX=/usr/local/haproxy  # make install PREFIX=/usr/local/haproxy  # cd /usr/local/haproxy  # mkdir conf
# wget http://www.dest-unreach.org/socat/download/socat-2.0.0-b5.tar.gz  # tar zxvf socat-2.0.0-b5.tar.gz  # ./configure --disable-fips  # make   make install
server node01 192.168.233.83:8000 weight 3 check inter 2000 rise 2 fall 1  server node02 192.168.233.84:8000 weight 3 backup check inter 2000 rise 2 fall 1 listen stats_auth 0.0.0.0:91  mode http  stats enable  stats uri /admin  stats realm "Admin console"  stats auth admin:123456  stats hide-version  stats refresh 10s  stats admin if TRUE
server node01 192.168.233.83:8000 weight 3 backup check inter 2000 rise 2 fall 1  server node02 192.168.233.84:8000 weight 3 check inter 2000 rise 2 fall 1 listen stats_auth 0.0.0.0:91  mode http  stats enable  stats uri /admin  stats realm "Admin_console"  stats auth admin:123456  stats hide-version  stats refresh 10s  stats admin if TRUE

说明:两节点互为主备模式,均优化将本机的节点应用做为主节点,也可以为负载均衡模式。

 

5. node01,node02上配置HAproxy日志文件 1) Haproxy日志配置
# chkconfig: 345 85 15  # description: HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments. # Source function library.  if [ -f /etc/init.d/functions ]; then  . /etc/init.d/functions  elif [ -f /etc/rc.d/init.d/functions ] ; then  . /etc/rc.d/init.d/functions  else  exit 0  # Source networking configuration.  . /etc/sysconfig/network # Check that networking is up.  [ ${NETWORKING} = "no" ]   exit 0 
daemon /usr/local/haproxy/sbin/haproxy -D -f /usr/local/haproxy/conf/haproxy.cfg -p /var/run/haproxy.pid  RETVAL=$? echo  [ $RETVAL -eq 0 ]   touch /var/lock/subsys/haproxy  return $RETVAL  stop() {  echo -n "Shutting down HAproxy: "  killproc haproxy -USR1  RETVAL=$?  echo  [ $RETVAL -eq 0 ]   rm -f /var/lock/subsys/haproxy  [ $RETVAL -eq 0 ]   rm -f /var/run/haproxy.pid 
(3) 测试监控

http://192.168.233.85:91/admin    
http://192.168.233.83:91/admin    
http://192.168.233.84:91/admin    
因为没有应用,代理会出现503报错。

 

四、Jboss-EAP-4.3集群配置 配置要点: 1)Jboss及java基础环境配置略, Jboss会话复制是本例的重点。 2)Jboss及应用程序代码部署在GFS集群文件系统目录上,两节点能够访问同一个内容。 3)延伸可以部署监控脚本监控jboss应用,如果进程死掉或无法访问,重启应用,本文略过该内容。

 

1. 添加JBoss会话复制功能

在应用程序中配置会话复制

# vi /cluster/zhzxxt/deploy/app.war/WEB-INF/web.xml

直接在 web-app 下加入一行 distributable/    


PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  "http://java.sun.com/dtd/web-app_2_3.dtd"   web-app  
1)修改集群标识

# vi /cluster/jboss4/server/node01/deploy/jboss-web-cluster.sar/META-INF/jboss-service.xml   
# vi /cluster/jboss4/server/node02/deploy/jboss-web-cluster.sar/META-INF/jboss-service.xml    
attribute name="ClusterName" Tomcat-APP-Cluster /attribute

2)采用TCP方式实现会话复制通讯,注释掉原UDP多播配置文件, 因多播绑定端口到本机最后一个IP地址上,会造成多网段两台服务器绑定IP网段不一样,复制进程无法通讯,改为TCP模式问题解决。
阿里资深架构师钟华曰:中台战略思想与架构实战;含内部实施手册 最近在读一本书,叫做《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》,在写此文时本书还没有看完,因为担心如果把书全部看完后再来写这篇文章,很多精彩的内容可能已经忘记了,所以中途先写一篇来分享给大家。