apache2.2 tomcat5.5 jboss4.2搭建 web集群+应用集群
apache2.2tomcat5.5jboss4.2搭建web集群+应用集群
本文主要内容:使用apache2.2tomcat5.5jboss4.2搭建web集群+应用集群。其中应用层集群部署在jboss4.2上,因为所有的部署都是在同一台机器上,所以我使用xVMVirtualBox3虚拟了一台机器,在主机和虚拟机之间如何互相调用应用层ejb、访问数据库的问题上也是颇多周折。不得不说,网上那些所谓的高手实在不敢恭维。因此到最后,还是自己摸索着完成web集群+应用集群。
要点:1、xVMVirtualBox的网络配置
2、web集群配置
3、应用集群配置
4、数据库的问题
首先从xVMVirtualBox3的网络配置开始,网上有诸多文章提到xVMVirtualBox的网络配置,多半是主机和虚拟机如何互相访问,到最后都是说:主机可以ping通虚拟机;虚拟机可以ping通主机,OK!完事了!
看到这些文章我是越看越来气,可以互相ping通,又怎么样!可以互相访问数据库吗?可以互相访问tomcat吗?可以互相访问ejb吗?所以在部署web集群+应用集群的时候有一大堆的问题。下面就以实际的例子来说明如何配置xVMVirtualBox3的网络才能为集群做好准备。
我现在使用的是xVMVirtualBox3,可网上流传的多半还是xVMVirtualBox2的文章,所以个人觉得那些copy别人文章的实在是误人子弟。
xVMVirtualBox3的安装不说了。直接进入网络配置,要为集群做好准备,首先要配置一个网桥[后面在数据库部分还要配置NAT],在xVMVirtualBox3的安装完成后已经有一个NAT的配置,我们先不管,我们配置网
络连接2,
在此之前还是要说明一下,图片中的“MAC桥微型端口”是怎么来的:在安装完xVMVirtualBox3后,在网络连接中会出现一张名称为:VirtualBoxHost-OnlyNetwork的网卡,将这张网卡和“本地连接”同时选中,然后右键,点击桥接,会建立网桥。如下图,到此就会有“MAC桥微型端口”的选择了。
另外值得注意的是:在配置网络连接2的时候,我使用的是“intelpro/1000MT..”
的芯片,而这个是需要驱动的,当然这个驱动也很好找,只要在baidu中输入intelpro/1000MT驱动就可以找到了。如何将驱动放到虚拟机、如何安装不讲了。到此xVMVirtualBox的网络配置完成!
接着讲web集群配置,这部分其实相对简单,网上资料也有不少,tomcat5.5如何开启集群、设置端口,在此不做累述。主要说明一下apache2.2如何实现负载平衡,注意是apache2.2!不是apache2。apache2中使用jk实现就负载平衡不说了,网络上有不少文章都是在用jk配置负载平衡,如果是最新的apache版本,恐怕是找不到对应的jk版本,更何况pache2.2之后apache已经集成了负载平衡!配置的代码很简单:
找到%Apache2.2%\conf\httpd.conf在末尾加上:
ProxysPas/images!
ProxyPass/css!
ProxyPass/js!
ProxyPass/balancer://example/
<Proxybalancer://example/>
BalancerMemberhttp://192.168.1.119:7888/
BalancerMemberhttp://192.168.1.120:7080/
</Proxy>
以下说名内容:
//192.168.1.119:主机地址7888:主机tomcat端口
//192.168.1.120:虚拟机地址7080:虚拟机tomcat端口
web集群配置完成,如何验证集群是否有效、负载平衡是否工作呢?假设主机tomcat和虚拟机tomcat上都部署了一个名为test的工程,我们可以在浏览器地址栏输入:http://192.168.1.119:80/test
192.168.1.119:apache所在机器的ip
80:apache的端口,如果80已经被占用,可以使用其他端口,apache修改端口不在累叙。
查看主机tomcat、虚拟机tomcat控制台是否有输出,如果主机tomcat、虚拟机tomcat控制台都有输出,那么apache负载平衡中“分发”的作用就达到了。
下面讲应用集群配置:
在应用集群中,我使用的是ejb3,中间碰到一个很诡异的问题,在VirtualBox网络配置完成、主机和虚拟机都各有一个tomcat、jboss,启动主机和虚拟机上的tomcat、jboss,主机和虚拟机的tomcat可以互相访问,但jboss不行,后来查了资料才知道:jboss4.2中jboss的访问地址需要绑定的,修改启动的参数,主机原来:run-call主机修改后:run-call-b192.168.1.119
虚拟机原来:run-call虚拟机修改后:run-call-b192.168.1.120
说明:ejb3如何部署在此不做累述。为什么是-c,玩jboss、ejb3集群的应该明白。
最后讲的是数据库:我使用的mysql5的免安装版本,小巧、易于移动,
在部署中发现,如果xVMVirtualBox3只配置网桥,那么主机和虚拟机是不能相互访问数据库的,所以我把NAT也用了起来,但还是有问题,主机可以访问虚拟机的数据库,可是虚拟机不能访问主机的数据库,所以只能把数据库放到了虚拟机上,这和原来的设想多少有点出入。
不管怎么样,apache2.2tomcat5.5jboss4.2搭建web集群+应用集群已经能正式的跑了起来。其实ejb3.0已经玩了挺长时间,但是一直没有进行ejb3的集群部署,所以干脆花了一些时间把web集群也实
现。因为没有多台机器的关系,使用了xVMVirtualBox3虚拟了机器,但因此也带来颇多的问题!还好现在都已经解决!