设为首页 收藏本站
查看: 1755|回复: 0

[经验分享] Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

[复制链接]
发表于 2015-9-4 09:49:09 | 显示全部楼层 |阅读模式
  

  
  
配置环境说明:
  
  
KVM虚拟机配置

用途

数量

IP地址

机器名

虚拟IP地址

硬件

  内存3G  系统盘20G cpu 4核
  Haproxy
  keepalived
  2台
  192.168.1.10
  192.168.1.20
  Haserver01
  Haserver02
  192.168.30
  192.168.40
  内存6G  系统盘20G cpu 4核
  Weblogic
  4台
  192.168.1.100
  192.168.1.150
  192.168.1.200
  192.168.1.250
  Clusters01
  Clusters02
  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服务器就是管理服务器。

DSC0000.jpg

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

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

DSC0001.jpg
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
DSC0002.jpg

  
  2、
DSC0003.jpg
  
  
  3、选择安装路径 与之前设置的环境变量一致
DSC0004.jpg
  4、
DSC0005.jpg

  5、
DSC0006.jpg
  
  6、安装weblogic软件
DSC0007.jpg
  7、
DSC0008.jpg
  8、创建weblogic home目录
DSC0009.jpg
  9、
DSC00010.jpg
  10、
DSC00011.jpg
  
  11、
DSC00012.jpg
  12、
DSC00013.jpg
  13、
DSC00014.jpg
  14、
DSC00015.jpg
  15、
DSC00016.jpg
  16、
  
DSC00017.jpg
  5、  安装weblogic域
  
  创建weblogic域
DSC00018.jpg
  
  下一步:默认即可
DSC00019.jpg
  输入域名、域安装位置
  
DSC00020.jpg
  用户名及密码
DSC00021.jpg
  开发模式和生产模式,根据实际情况选择,这里选择生产模式
  PS:Oracle jre 对生产模式进行了优化,生产模式建议选择jrockit
  如果是开发模式的话建议选择sun jre
DSC00022.jpg
  
  这里只选择管理服务器,不选择的话也会创建管理服务器,受管服务器、集群、计算机在管理服务器web管理界面均可后期根据需要再创建,没必要在此创建。
DSC00023.jpg
  点击创建 就完成了新域的创建
DSC00024.jpg
搭建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
DSC00025.jpg
  
  3.        首先点击锁定并编辑 建立 计算机:环境>计算机>新建
  计算机名称及类型 根据实际情况填写。
DSC00026.jpg
  
  下一步 输入监听IP地址 及端口号
DSC00027.jpg
  完成,重复以上步骤建立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
DSC00028.jpg
  4.        新建集群环境>集群>新建
DSC00029.jpg
  5.        新建服务器环境>集群>新建
  输入服务器名、监听IP地址、端口号、所属集群等
DSC00030.jpg
  
  点击完成
DSC00031.jpg
  
  重复以上步骤建立4个服务器分别对应 4台计算机
DSC00032.jpg
  6.        
  调整服务器 设置
  配置>SSL
  主机名验证选择 无
DSC00033.jpg
  配置>服务器启动
  设置服务器启动参数 根据实际情况填写
  
  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
  用户名
  密码
DSC00034.jpg
  
  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、服务器>控制
  勾选需要启动的服务器,启动即可
  
DSC00035.jpg
  至此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等,都需要根据实际情况进行调优,希望这篇文章可以帮助到你,谢谢!
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109260-1-1.html 上篇帖子: 利用Weblogic的iisproxy、iisforward插件实现IIS转发 下篇帖子: nagios,weblogic,8080,oracle,1521
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表