![](https://img.kancloud.cn/d4/c2/d4c2cd222f990a1056c4397597030d36_1047x488.png)### Weblogic及其由来和历史 Weblogic是Oracle公司的Java应用服务器。可以用来集成和部署大型分布式Web应用、网络应用和数据库应用。 Weblogic最早由Weblogic公司开发,后来被BEA公司并入,所以早期Weblogic安装及界面有bea的元素。BEA被Oracle收购之后,成为Oracle公司的Oracle数据库之外的另外一个重量级的产品。 因其广受欢迎及优势,在其之上延伸了很多其他的企业中间件,比如Weblogic Portal, WebLogic Integration等,Oracle遂以Fusion Middleware (融合中间件)的字眼来命名。 ### Weblogic与Tomcat等的优劣 Weblogic属于商业J2EE应用服务器,同类的产品有: - IBM公司的Websphere - 原Sun公司(现已被Oracle收购)的Glassfish,resin。Glassfish可以看出是官方的服务器,是首个实现Java EE 6规范的应用服务器。 - Red Hat的WildFly(也就是JBoss) - Apache组织的Tomcat **从费用上来看**,Weblogic和Websphere都是商业服务器,是收费的,Glassfish最早是免费,被Oracle收购后,也不是完全的开源免费了,但是提供社区开源版本,比如Payara即源自Glassfish开源版。WildFly和Tomcat都是完全的开源免费。 **从适用度来看**,收费的服务总归有其收费的道理。Weblogic、Websphere、Glassfish以及JBoss都属于J2EE应用服务器,属重量级框架,Tomcat只能算是JSP/Servlet容器,相对轻量级。一般的Java Web应用适用Tomcat即可,分布式或是大型的Web应用则选择Weblogic为宜。 **从市场占有份额来看,** tomcat占据了Java Web服务器的半壁江山,主要原因就是其简单,可以广泛适用在一般的Java Web应用。对于大型分布式的Web应用,数据源、JMS等由服务器管理,选项也较多,开源免费的占有额稍微居高。以下是撷取的一个占有额的图。 ![](https://img.kancloud.cn/84/2d/842d9bb5b2668843e6db88cb6361772a_523x350.png) ### WebLogic重要概念 WebLogic的重要概念就是在管理控制台可以看到的概念,主要包括计算机、域、服务器、集群等,如下图示: #### 计算机(Machine): 计算机代表的就是实际的机器, - 如果使用单服务器,则基本可以忽略这个概念。 - 在集群架构中,托管服务器可以位于不同的机器中,默认机器之间使用SSL协议进行通讯。 #### 域(Domain) 域是一个逻辑概念,是Weblogic管理的基本单元, 包括一个Administration server和一个或多个Managed Servers。 #### 管理服务器(Administration Server) 负责Domain的管理,一般不管理应用(除非只配置该服务器),管理服务器可以通过管理控制台进行管理,可以管理的包括: -域分区管理 -环境: 主要是计算机、服务器和集群等管理 -部署: 应用的部署 -服务:主要是数据源、消息以及邮件等管理。 -安全和日志等配置 在Windows下使用 startWebLogic.cmd 批处理启动。 #### 托管服务器(Managed Server) 也称受管服务器,主要用来部署Web应用。 -在同一机器中, 可以配置不多端口的多个托管服务器。 -也可以将托管服务器放在不同的机器中,通过管理服务器进行管理。 #### 节点管理器(Node Manager) 节点管理器是相对底层的概念,功能是启动之后建立与管理服务器的连接。在Windows下使用 startNodeManager.cmd批处理启动。 ### 概念间的关系 域、计算机和管理服务器的结构关系 - 一个域下可以有一台或多台计算机 - 一个域有且只有一个Administration server,用来修改配置和部署应用。 - 一个域下可以没有受管服务器 - 一个管理服务器可以管理一个或多个受管服务器 关系如图: ![](https://img.kancloud.cn/21/ac/21ac68911fd9a1decaab68e1a34f3d6a_414x428.png) 管理服务器负责管理对Domain进行管理, 托管服务器启动前需要需要先启动管理服务器。 但在两者都启动后,关闭管理服务器之后,托管服务器依旧可以运作,也就是应用还可以正常访问,只是无法连接控制台进行部署更新和配置等。 ### 集群(Cluster) 集群是多个Managed Server的集合。 ![](https://img.kancloud.cn/3a/ad/3aad48161d5d01e22551c7117bb9383a_416x349.png) 集群可以用来做HA和负载均衡。一般会增加一个代理服务,结构类似: ![](https://img.kancloud.cn/56/9d/569d72fa2679af2ff220f673a00c14c4_310x219.png) 以上部分会在下一篇进行介绍和演示。 ### 实际服务架构选择 在实战中,Weblogic的服务架构可以参考如下: 1. 开发或是学习,只需要一台机器,配置管理服务器即可, 应用部署在管理服务器上, 默认端口 7001, 也就是: 管理控制台的地址是: http://localhost:7001/console 应用部署后的地址(比如应用名myapp)http://localhost:7001/myapp 2. 一般正式应用,一台机器,一个域,一个管理服务器,一个受管服务器 。管理服务器负责配置以及对受管服务器等进行管理, 受管服务器部署应用。 3. 大型应用,多台机器,一个域,一个管理服务器,多个受管服务器。没有Session共享的状况,允许多个地址进行访问(包括仅端口不同),新增多个受管服务器。 但是常见的状况是通过统一的地址访问应用,而且由Session共享的需求,这种状况需要配置集群。 不集群虽然也可以适用L4 Switch等进行请求的负载均衡,但使用Weblogic的自身负载均衡是较为简单的方式。 ***** *****