weblogic集群架构相关的概念有:
1、服务器(server,控制台选择环境-服务器)
2、集群(cluster,控制台选择环境-集群)
3、计算机(machine,控制台选择环境-计算机)
4、节点管理器(nodemanager,)
下面根据对这4个概念一一介绍【概念相对来说比较难描述的,如果有描述不当的地方,敬请指正,在此谢过!】。
1、服务器(server)
weblogic集群的服务器分三类:
1)AdminServer(公司老板)
主要用于管理,包括应用部署,动态创建server,以及各种服务配置.所以集群环境下不会将应用、数据源等服务部署到AdminServer上面,因为AdminServer仅仅是充当管理者角色而已。运维过程中,还起到监控其它服务器状态的作用。
2)ProxyServer(前台MM)
主要受理各种外部请求,然后将具体工作交给具体的服务器(一线员工)。所以集群环境下,也不会将应用部署到ProxyServer上。
3)Server(一线员工)
实际干活的服务器,把前台MM接受到的任务进行实际处理,处理完了反馈给客户端
由此可见,AdminServer只负责管理、ProxyServer负责受理分配、而普通的Server就负责干活。
2、集群(cluster)
控制台里面配置的集群,仅仅用于设置server之间的多播通信。server之间使用多播通信,互相告诉自己状态是否可用。
3、计算机(machine)
可选配置。控制台里面配置的计算机,仅仅用于配置“节点管理器”信息(地址、端口)。然后根据配置信息向节点管理器发送操作命令。
4、节点管理器(nodemanager)
可选服务。节点管理器在集群架构中,不是必须的。它的作用是用来管理server的生命周期,如果没有使用节点管理器,那么集群中的所有server的启动、关闭等常用的操作,必须通过运行startManagedWebLogic.cmd脚本来完成。该脚本位置是:
D:\server\weblogic11\user_projects\domains\springside3\bin
如果启动server1(一般称为受管服务器,即接受管理的普通server),那么启动命令如下:
startManagedWebLogic server1 127.0.0.1:7001 其中: server1 启动的受管服务器的名称 address 该域的管理服务器的IP地址 port 该域的管理服务器的监听端口
所以有些集群环境下,你能看到有多少个server,就有多少个启动脚本,实际上就是执行上面这个命令。
如果集群中的server分布在多台主机上面,那每次启动服务非常不方便,所以这时候,节点管理器就派上用场了,节点管理器负责管理本机server的启动、关闭等生命周期。
附上一幅图,肯能更直观些:
概念讲完了,接着讨论在前两篇中涉及到的一些疑问。
1、为什么配置集群时,把server1、server2添加到集群,而配置计算机时,添加了proxy、server1、server2呢?
server1、server2纳入集群,是因为它们要通过组播地址互相检测运行状态,proxy在集群架构中仅仅作为前端代理,与集群的server有着本质的区别。配置计算机时,添加proxy、server1、server2,是因为这三个server在同一台主机,并且把proxy的启动、关闭交给节点管理器处理。这里也不可以不添加proxy,但是proxy的运行就要靠startManagedWebLogic proxy 127.0.0.1:7001
这样的命令来执行了。
2、控制台里面配置的集群,与整个集群架构的区别是什么?
控制台里面的集群仅仅是个配置(名称、消息传送模式),只有设置了消息传送模式,集群中的server才根据这个模式来互相传递消息。
而整个集群架构是通过对服务器、集群配置、计算机配置(可选)、节点管理器服务(可选)以及负载均衡等的统一管理,来达到高并发、高可用的目的。
细心的同学应该还记得消息传送模式那里有两个选择:单点传送、多点传送。它们的区别是什么?
单点传送是weblogic10版本之后才有效的,之前都是多点传送方式。它们之间的区别可参考:http://www.blogjava.net/beansoft/archive/2012/02/23/370623.html
文章里面的两幅图已经清楚描述了通信方式的区别,其中还有个单点传送、多点传送的区别。
3、配置计算机的一些细节:
1)新建计算机的时候,有个“操作系统”,可选择:UNIX、其它。这里主要是确定节点管理所在的主机操作系统类型。windows系统就选择其它;linux、unix、solaris就选择unix。
2)节点管理器属性配置中,有个类型选择【SSH/RSH/SSL/普通】,这个配置是告诉AdminServer与节点管理器交互时采用哪种类型传递。weblogic使用手册中介绍节点管理器的章节可供参考:
http://edocs.weblogicfans.net/wls/docs92/server_start/nodemgr.html
节点管理器分为两种:基于java的、基于脚本的
我目前见过较多的还是使用java+ssl这样的组合方式。(不过ssl配置稍微麻烦点)
如果你的server使用了“定制标识和定制信任”,那么节点管理器配置【位置:D:\server\weblogic11\wlserver_10.3\common\nodemanager\nodemanager.properties】也要增加如下配置:
KeyStores=CustomIdentityAndCustomTrust CustomIdentityAlias=example CustomIdentityKeyStoreFileName=example.jks CustomIdentityKeyStorePassPhrase=123456 CustomIdentityPrivateKeyPassPhrase=123456
这是按照我之前SSL制作的秘钥库来配置的。
至于节点管理器的其它配置信息可参考官方文档。