Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

配置环境说明:

 

KVM虚拟机配置

用途

数量

IP地址

机器名

虚拟IP地址

硬件

内存3G  系统盘20G cpu 4核 Haproxykeepalived 2台 192.168.1.10192.168.1.20 Haserver01Haserver02 192.168.30192.168.40
内存6G  系统盘20G cpu 4核 Weblogic 4台 192.168.1.100192.168.1.150

192.168.1.200

192.168.1.250

Clusters01Clusters02

Clusters03

Clusters04

 

软件

                                              版本
  Centos CentOS Linux release 6.0 (Final) x86_64 bit
  Weblogic 版本 10.3.5 通用版本
  haproxy-1.4.24
  keepalived-1.2.7

 

 

整体架构设计:

 

配置说明:

 Weblogic集群搭建:

概念简介:

作为一个单元来管理的并相互关联的一组WebLogic服务器资源被称为域。一个域可以包含一或多个WebLogic服务器,还可以包含WebLogic服务器集群。

域是一个完备的管理单元。向域里分发应用的时候,该应用的各组成部分只能分发到域之内的服务器上。如果域中包含集群,那么集群中的所有服务器都必须属于同一个域。

集群

WebLogicServer 群集由多个 WebLogicServer 服务器实例组成,这些服务器实例同时运行并一起工作以提高可缩放性和可靠性。对于客户端而言,群集是一个 WebLogicServer 实例。构成群集的服务器实例可以在同一台计算机上运行,也可以位于不同的计算机上。可以通过向现有计算机上的群集中添加更多的服务器实例来增加群集的容量,也可以向群集中添加计算机以承载递增的服务器实例。群集中的每个服务器实例必须运行同一版本的WebLogicServer

域和集群是什么关系

群集是特定 WebLogicServer 域的一部分。

域是作为单元进行管理的一组相关的 WebLogicServer 资源。一个域包含一个或多个 WebLogicServer 实例,这些实例可以是群集实例、非群集实例,或者是群集与非群集实例的组合。一个域可以包含多个群集。域还包含部署在域中的应用程序组件、此域中的这些应用程序组件和服务器实例所需的资源和服务。应用程序和服务器实例使用的资源和服务示例包括计算机定义、可选网络通道、连接器和启动类。

管理服务器、受管服务器

运行管理服务的WebLogic服务器称为管理服务器。管理服务集中管理并监控域的所有资源。如果要对某个域执行管理操作,该域的管理服务器必须处于运行状态。

一个包含多个WebLogic服务器的域只能有一个管理服务器,其它服务器称为受管服务器。每个WebLogic受管服务器都会在启动时从管理服务器得到各自的属性配置。

管理服务器和WebLogic受管服务器启动时都运行webLogic.Server类。没有作为受管服务器启动的WebLogic服务器就是管理服务器。

节点管理器

节点管理器是一个Java应用程序。借助该应用,你可以从管理控制台远程地启动或kill WebLogic受管服务器。节点管理器是单独的一个Java应用,随同WebLogic服务器软件供应。

你可以通过管理控制台来结束受管服务器,另一种方式是用节点管理器kill远程受管服务器。当远程服务器被hung或没有响应时,就需要杀掉远程服务器进程。

 

Weblogic软件安装及新域创建

1、  weblogic软件安装

官网下载软件 wls1035_generic.jar

jrockit-jdk1.6.0_45-R28.2.7-4.1.0-linux-x64.bin

2、  建立用户组、用户在/opt下建立weblogic目录

Root 下执行:

groupaddweblgoic

useradd -g weblogic weblogic

password weblogic

mkdir /opt/weblogic

chown weblogic:weblogic /opt/weblogic

3、  安装jre

/opt/weblogic/ jrockit-jdk1.6.0_45-R28.2.7-4.1.0-linux-x64.bin

4、  安装weblogic

设置环境变量编辑/etc/profile

exportJAVA_HOME=/opt/weblogic/jrockit-jdk1.6.0_45-R28.2.7-4.1.0

exportBEA_HOME= /opt/weblogic/Oracle/Middleware/

export PATH=$JAVA_HOME/bin:$PATH

1、  以下weblogic软件安装过程图片摘自互联网。路径可能不同,仅供参考。

首先安装jrockit-jdk

2、

3、选择安装路径 与之前设置的环境变量一致

4、

5、

6、安装weblogic软件

7、

8、创建weblogic home目录

9、

10、

11、

12、

13、

14、

15、

16、

5、  安装weblogic域

创建weblogic域

下一步:默认即可

输入域名、域安装位置

用户名及密码

开发模式和生产模式,根据实际情况选择,这里选择生产模式

PS:Oracle jre 对生产模式进行了优化,生产模式建议选择jrockit

如果是开发模式的话建议选择sun jre

这里只选择管理服务器,不选择的话也会创建管理服务器,受管服务器、集群、计算机在管理服务器web管理界面均可后期根据需要再创建,没必要在此创建。

点击创建 就完成了新域的创建

搭建weblogic集群

本文使用节点管理器方式来控制受管服务器,使用节点管理的方式有几点好处:

1、  节点管理器可以监测受管服务器的状态,如果受管服务器宕机,节点管理器可以重启受管服务器。

2、  可以通过webconsole管理界面远程重启受管服务器。有很多人是直接运行受管服务器进程例如:./ startManagedWebLogic.sh server01http://192.168.1.10:7001 的方式来启动受管服务器,如果受管服务器较多的话,此类方法维护较为繁琐。

3、  加入域的物理服务器只需要运行节点管理器进程即可,之后可以管理多个受管服务器,注意:新建的受管服务器第一次需要手动运行一下受管服务器脚本。

直接运行受管服务器进程方式较为简单,本文不做说明。

配置过程:

1.        192.168.1.10 为域管理服务器,本机同时运行管理服务器及节点服务器进程

运行

sh $BEA_HOME/user_projects/domains/clusters_domain/bin/startWeblogic.sh  启动

第一次运行需要输入之间管理服务器设置的weblogic账号密码

可以通过建立boot.properties文件,之后就不用账号密码了,而且是加密的。

vi $BEA_HOME/user_projects/domains/clusters_domain/servers/AdminServer/security/boot.properties

password=weblogic

username=weblogic

2.        进入weblogic console管理服务器端http://192.168.1.10:7001/console

3.        首先点击锁定并编辑 建立 计算机:环境>计算机>新建

计算机名称及类型 根据实际情况填写。

下一步 输入监听IP地址 及端口号

完成,重复以上步骤建立4个计算机分别对应

Machine-0        192.168.1.10 5556

Machine-1         192.168.1.20   5556

Machine-2         192.168.1.30   5556

Machine-3         192.168.1.40   5556

4.        新建集群环境>集群>新建

5.        新建服务器环境>集群>新建

输入服务器名、监听IP地址、端口号、所属集群等

点击完成

重复以上步骤建立4个服务器分别对应 4台计算机

6.

调整服务器 设置

配置>SSL

主机名验证选择 无

配置>服务器启动

设置服务器启动参数 根据实际情况填写

JAVA主目录 /opt/weblogic/jrockit-jdk1.6.0_45-R28.2.7-4.1.0

BEA 主目录 /opt/weblogic/Oracle/Middleware

根目录     /opt/weblogic/Oracle/Middleware/user_projects/domains/clusters_domain

类路径     /opt/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar

安全策略文件/opt/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy

用户名

密码

7.        启动节点管理器进程

每台服务器上均运行节点管理器进程:

Sh /opt/weblogic/Oracle/Middleware/wlserver_10.3/server/bin/startNodeManager.sh192.168.1.10  5556

Sh /opt/weblogic/Oracle/Middleware/wlserver_10.3/server/bin/startNodeManager.sh192.168.1.20  5556

Sh /opt/weblogic/Oracle/Middleware/wlserver_10.3/server/bin/startNodeManager.sh192.168.1.30  5556

Sh /opt/weblogic/Oracle/Middleware/wlserver_10.3/server/bin/startNodeManager.sh192.168.1.40  5556

8、运行一次受管服务器进程(每个受管服务器都要在节点服务器中运行一次)

Sh /opt/weblogic/Oracle/Middleware/user_projects/domains/clusters_domain/bin/stopManagedWebLogic.sh Sever-1(受管服务器名)http://192.168.1.10:7001(管理服务器地址及端口)

需要在每个节点管理上运行此进程一次,之后就不用运行了,运行该进程后会生成相应的受管服务器目录。

/opt/weblogic/Oracle/Middleware/user_projects/domains/clusters_domain/servers下

9、服务器>控制

勾选需要启动的服务器,启动即可

至此weblogic集群的配置已经完毕,之后就可以降应用部署到集群当中了,可以选择部署到集群中所有服务器,或部分服务器。

Haproxy与keepalived 配置

Haproxy 配置

1、  下载haproxy

Haproxy.1wt.eu 下载最新稳定版haproxy

2、  安装环境

如果系统没有安装gcc的话需要安装gcc

yum install gcc

3、  Cd /opt

Tar –zxvf haproxy-1.4.24.tar.gz

Cd haproxy-1.4.24

make TARGET=linux26

make install

4、  Haproxy安装到/usr/local/haproxy

编辑配置文件 vi /usr/local/haproxy/conf/haproxy.cfg

global

log 127.0.0.1   local1 info

maxconn 20480

chroot /usr/share/haproxy

uid 99

gid 99

daemon

nbproc 1

pidfile /usr/share/haproxy/haproxy.pid

defaults

log     global

mode    http

option  httplog

option  dontlognull

retries 3

option redispatch

maxconn 20480

contimeout      5000

clitimeout      50000

srvtimeout      50000

listen admin_stats

bind *:9020

stats refresh 30s

stats uri /haweb

stats realm Haproxy Manager

stats auth test:test

#stats hide-version

frontend test

bind *:80

#

acl test_2013 path_beg -i /test_2013

acl test_2014 path_beg -i /test_2014

use_backend  test_2013.server if test_2013

use_backend  test_2014.server if test_2014

backend test2013.server

mode http

#fullconn 1000

balance roundrobin

cookie  SERVERID insert indirect

option  httpchk HEAD/test2013/skins/logo.gif

server  test201331192.168.1.10:8080 cookie test1 check inter 2000 rise 3 fall 3 weight 3

server  test201332192.168.1.20:8080 cookie test2 check inter 2000 rise 3 fall 3 weight 3

server  test201333192.168.1.30:8080 cookie test3 check inter 2000 rise 3 fall 3 weight 3

server  test201334192.168.1.40:8080 cookie test4 check inter 2000 rise 3 fall 3 weight 3

backend test_2014.server

mode http

#fullconn 1000

balance roundrobin

cookie  SERVERID insert indirect

option  httpchk HEAD/test_2014/skins/logo.gif

server  test_201431 192.168.1.10:8080cookie test5 check inter 2000 rise 3 fall 3 weight 3

server  test_201432192.168.1.20:8080 cookie test6 check inter 2000 rise 3 fall 3 weight 3

server  test_201433192.168.1.30:8080 cookie test7 check inter 2000 rise 3 fall 3 weight 3

server  test_201434192.168.1.40:8080 cookie test8 check inter 2000 rise 3 fall 3 weight 3

这是haproxy 的基本配置,2台haproxy 配置保持一致即可。

这里可以在/etc/init.d/ 下建立一个haproxy脚本文件,方便执行service haproxy start/stop/restart

内容如下:

#!/bin/bash

BASE_DIR="/usr/local/haproxy"

ARGV="$@"

start()

{

echo "START HAPoxy SERVERS"

$BASE_DIR/haproxy -f$BASE_DIR/conf/haproxy.cfg

}

stop()

{

echo "STOP HAPoxy Listen"

kill -TTOU $(cat/usr/share/haproxy/haproxy.pid)

echo "STOP HAPoxy process"

kill -USR1 $(cat /usr/share/haproxy/haproxy.pid)

}

case $ARGV in

start)

start

ERROR=$?

;;

stop)

stop

ERROR=$?

;;

restart)

stop

start

ERROR=$?

;;

*)

echo "hactl.sh[start|restart|stop]"

esac

exit $ERROR

之后可以在/etc/rc3.d 建立连接,实现开机自动启动


Keepalived 配置

1、  下载keepalived软件

官网下载keepalived-1.2.7.tar.gz

2、  安装软件环境

yum install openssl-devel popt-devel

3、  tar –zxvf keepalived-1.2.7.tar.gz

cd /root/keepalived-1.2.7

./configure –prefix=/usr/local/keepalived/

Make & make install

4、  cp /usr/local/keepalived/etc/keepalived/samples/keepalived.conf.vrrp/etc/keepalived/ keepalived.conf   ##拷贝配置文件

cp /usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/keepalived   ##拷贝执行文件

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/keepalived ##拷贝执行文件

cp /usr/local/keepalived/sbin/keepalived/usr/sbin/keepalived  #拷贝执行文件

5、  示例配置文件

本配置为双主keepalived配置,即有个虚拟IP,双主机互为主备,可以更高效的利用服务器资源,如果是一主一备方式,只配置一个虚拟IP即可。

!Configuration File for keepalived

global_defs{

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_fromAlexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instanceVI_1 {

state MASTER

interface eth1

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.30

}

}

vrrp_instanceVI_2 {

state BACKUP

interface eth1

virtual_router_id 52

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.40

}

}

同样的在/etc/rc3.d下建立链接即可实现开机自动启动,至此Haproxy+keepalived 搭建weblogic高可用负载均衡集群已经配置完毕,但这只是开始,这只是基础配置,系统的整体优化是重点,包括haproxy weblogic等,都需要根据实际情况进行调优,希望这篇文章可以帮助到你,谢谢!

发表评论