扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
引言
|
IBM WebSphere Application Server Community Edition(以下称为 Community Edition)是基于 Apache Geronimo 的开源 Java™ Platform, Enterprise Edition (Java EE) 应用服务器。Community Edition 的资源占用量非常小,并且可以免费使用。
Community Edition 的基于 JSR-168 的管理控制台本质上是 Community Edition 中部署的一个 Web 应用程序,它为管理本地或远程服务器的许多方面提供了基于 Web 的用户友好的界面。如果您是第一次使用 Community Edition 和管理控制台,则文章 使用 WebSphere Application Server Community Edition 中的 Web 控制台 是一篇很好的入门文章,其中介绍了可以在控制台中执行的许多常见的管理任务。在具备这些基础知识后,您可以通过本系列文章(共两篇)来学习如何使用 Community Edition 控制台执行高级管理任务:
第 1 部分讨论了执行下列任务的方法:
本文将介绍以下几个方面:
|
线程池统计信息
对管理员而言,性能优化始终是一项高优先级任务。服务器的处理能力取决于线程池的大小,因此考察线程池的状态将有助于优化服务器的性能。此透视图用 Thread Pools Portlet 表示,这是 Community Edition V1.1.x 管理控制台中新增的一项功能。
通过选择 Server 类别下的 Thread Pools 链接,可以从 Console Navigation 窗格中启动 Thread Pools Portlet。此 Portlet 显示了服务器上的可用线程池以及每个池的大小(图 1)。
图 1. 线程池统计信息
要监视特定线程池的统计信息,请单击与该池相对应的 monitor 链接。这将显示该池的大小、最低记录数、最高记录数以及使用中的线程数:
这些字段为监视生产负载和分析池使用情况提供了一个总体概貌,有助于您为最大池大小定义一个最佳值。利用此信息,您可以通过调整 config.xml 文件(位于 >i><wasce_home>/var/config 目录中)中的 maxThreads、minThreads 和 acceptQueueSize 参数值来提高服务器的处理能力。修改完毕后,必须重新启动服务器,才能使任何更新的值生效。
|
从控制台重新部署应用程序
有时,您可能会遇到以下情况:您已在 Community Edition 中部署应用程序,但需要对应用程序代码做出进一步更改。要使所做的更改在服务器上生效,必须重新部署更新后的应用程序代码。在 Community Edition 以前的版本中,您需要执行多个步骤才能完成此任务。与之相比,管理控制台中新增的 redeployment 选项提供了一种简化的重新部署过程,可使您轻松完成任务。
要重新部署任何应用程序:
卸载并重新安装应用程序。
在 Console Navigation 窗格中,请选择 Applications 类别下的 Deploy New,以启动控制台上的 Install New Applications Portlet(图 2)。
请为下列字段提供值:
单击 Install 按钮。
图 2. 重新部署应用程序
重新部署成功后,请访问应用程序的 URL,以确认对应用程序代码所做的更改是否已反映在服务器上。
|
使用 Apache mod_jk 设置集群
随着网站流量的增加,您可能会达到一个点:运行应用程序的一个应用服务器不足以为所有请求提供服务,而不论您是否将应用程序构建为支持可伸缩性或高可用性(容错功能)。如果出现此情况,则需要添加其他服务器来运行该应用程序,但是运行同一应用程序的整个应用服务器组必须仍作为单个实体运行。能够实现此目的的机制称为集群。
集群一般分为两种:
如果您希望提高 Web 应用程序的可伸缩性和可用性,请考虑使用集群配置。Community Edition 通过实现 Apache Tomcat 的集群功能提供 Web 层集群。此集群配置允许集群成员通过内存到内存的多播通信复制 httpsession 数据。此外,它还具有以下功能:
此集群配置可自动在集群的所有节点之间同步状态数据,进而提高可用性。如果集群中有任何节点失败,后续请求便可由集群中的任何其他节点进行处理。此过程用于处理后续请求,通常称为故障转移。
通过集群配置,还可以添加额外的服务器,增加系统容量,进而提高可伸缩性。
在 Community Edition 中,您既可以配置垂直集群,也可以配置水平集群。
JK 是一个用于在 Web 服务器和 Apache Tomcat 连接器之间通信的组件。具体而言,JK 是用于处理 Tomcat Servlet 容器和 Apache HTTP Server 之间的通信的 Tomcat/Apache 插件,它以 Apache HTTP Server 模块的形式提供(请参见参考资料)。JK 的最新实现称为 mod_jk,它使用 AJP 协议推动容器和服务器之间的通信。Community Edition 使用 Tomcat 作为其 Web 容器,从而也使用 mod_jk 访问 Apache HTTP Server。您还可以使用 mod_jk 模块在 Community Edition 和 Apache HTTP Server 之间设置负载平衡器,以便将传入的请求均匀地分配给集群中的可用成员。
要配置 mod_jk,必须执行下列步骤:
将 Community Edition Web 容器配置为支持 AJP 协议
Apache AJP 协议面向数据包,它允许 Web 服务器通过 TCP 连接与 JSP/Servlet 容器进行通信。其中,Apache HTTP Server 也使用 AJP 与嵌入在 Community Edition 中的 Tomcat 通信。
为减少套接字创建过程中消耗的大量资源,Web 服务器会尝试维护与 Servlet 容器间的持久性 TCP 连接,并在多个请求/响应周期中重用连接。当 Web 服务器打开指向 Servlet 容器的连接并为特定的请求分配连接后,该连接将无法用于任何其他请求,直至该请求处理周期终止。这样可简化连接两端的代码,但会导致同时打开多个连接。
在分配连接来处理特定的请求后,基本请求信息(HTTP 头等信息)将以数据包的形式在 TCP 连接上发送。此时,Servlet 容器一般已准备好开始处理请求,并将已设置格式的应答消息数据包发送回 Web 服务器。
安装 mod_jk.so Apache 模块
您应在 Apache Web 服务器的 modules 目录中安装 mod_jk(例如在 /usr/lib/apache
中),然后通过添加以下代码行更新 httpd.conf,以使其指向 mod_jk.so:
LoadModule jk_module modules/mod_jk.so
创建 workers.properties 文件
工作线程本质上是 Tomcat 侦听器。它等待 Apache 发送的信息并将该信息提供给 Tomcat 来执行。例如,Web 服务器可以将请求转发给在其后台运行的 Tomcat 进程(工作线程)。Tomcat 工作线程在 workers.properties 文件中定义。HTTPd 利用此文件来查找 Community Edition 服务器的当前运行位置、应使用的 AJP 版本以及 Community Edition 服务器正在帧听的端口。
在创建 workers.properties 配置文件时,应使 Apache HTTP Server 指向 Community Edition 的 AJP Connector。(在 Apache 安装的 conf
目录下可以找到示例 workers.properties。)请将以下代码行添加到 httpd.conf 文件中,以使其指向此新文件:
JkWorkersFile /etc/httpd/conf/workers.properties
添加 Apache 配置信息
您已定义 Tomcat 工作线程,现在需要指示 Apache 与该工作线程进行对话。此外,您还必须指示应向 Community Edition 发送哪些 URL 以及 Apache 是否应提供静态内容(将 Web 应用程序中的动态内容交由 Community Edition 提供)。为此,请在 Apache 的 <apache_home>/conf/httpd.conf 文件中更新相应的值。
作为手动执行上述四个步骤的备选方案,您可以使用 Apache HTTP Portlet 从控制台中轻松配置 mod_jk 模块:
在 Server 类别下选择 Apache HTTP 链接,以此从 Console Navigation 窗格中启动 Apache HTTP Portlet。图 3 显示了 Apache mod_jk - Basic configuration Portlet。(对于此功能,Community Edition 并不维护使用控制台生成的设置的历史记录,因此您每次都要重新输入数据。)
mod_jk 安装过程因操作系统而异,因此请从列表中选择您的操作系统。如果列表中未列出您的操作系统,则需要自行安装 mod_jk:
LoadModule jk_module modules/mod_jk.so
请为下列字段输入值:
Apache mod_jk - Web App Selection Portlet(图 4)中将列出当前在 Community Edition 中运行的所有 Web 应用程序。对于列出的每个应用程序:
请单击 Finish 完成 Apache mod_jk 配置。随即将显示 Configuration Results Portlet(图 5)。在运行 mod_jk 配置 Portlet 时,任何要通过 Apache 公开的 Web 应用程序都必须处于运行状态,并可通过 Apache 进行访问。
图 5 显示了在 Apache 中启用 mod_jk 并将其配置为与 Community Edition 对话的必需步骤。请按照这些说明操作,然后单击 Done。
启动 Community Edition Server,然后重新启动 Apache。请尝试通过 Apache 访问 Web 应用程序(即提供 Apache URL)。在 Apache 错误日志和 mod_jk 错误日志中,您应看到相应的日志消息。
您可以从 Community Edition 下载页面下载演示 Community Edition 集群功能的示例应用程序。(请在 Download 部分中选择您的操作系统。在下一页中,请选择 Add-ons 部分中的 Sample J2EE applications,然后单击 Download now。)您可以在 Community Edition 上部署此应用程序并通过 Apache 进行访问。
|
创建并安装 Geronimo 插件
从本质上说,Geronimo 插件是 Apache Geronimo 中运行的应用程序或服务的完整配置,它采用 .zip 文件打包格式。使用 Geronimo 插件功能,您可以将一台 Geronimo 服务器中的任何配置以插件形式导出到远程存储库,然后再将其导入任何其他 Geronimo 服务器。这些插件可以在运行时安装;Geronimo 会在安装插件时自动下载并安装所有插件依赖项(JAR 或其他插件)。此功能对分布式环境场景十分有用:您可以在多台服务器上安装相同的配置,而无需在每台服务器上都重复手动配置步骤。
要从控制台创建并安装 Geronimo 插件,请转到 Console Navigation 窗格,选择 Plugins 类别下的 Create/Install 链接,然后按照下面的说明操作:
创建 Geronimo 插件
在 Create and Install Plugins Portlet(图 6)中,请从 Create Geronimo Plugin 下的下拉框中选择要导出的配置。单击 Export Plugin 按钮。
在 Configure Plugin Data Portlet(图 7)中,请为下列字段输入或选择值:
http://geronimoplugins.com/repository/
http://www.ibiblio.org/maven2/
http://geronimo-server:8080/console-standard/maven-repo/
1.1 /n 1.1.1 /n 1.1.2 /n ...
,依此类推。(如果未列出任何值,则说明该插件可安装在 Geronimo 的任意版本中。)这意味着您实际上已在此处列出的所有 Geronimo 版本中测试该插件。
1.4.2 /n 1.5 /n ...
,依此类推。(如果未列出任何值,则说明您可以在任何版本的 JVM 中运行的 Geronimo 中安装该插件。)这意味着您实际上已在此处列出的每个 JVM 版本上的 Geronimo 中测试该插件。
geronimo/jetty/*/car
),也可以是用户必须安装的数据库池或安全域(原因是插件作者不能创建目标服务器中的有效值)。 单击 Save Plugin Data 保存插件配置。
单击 Export Plugin,将插件以 CAR(配置存档)文件形式保存到本地文件系统中。
目前,要使插件有效,您必须在导出 CAR 后向其中手动添加 META-INF/geronimo-plugin.xml 文件。为此,请根据清单 1 创建 geronimo-plugin.xml 代码,并将其替换为适用的值。此示例代码显示了插件的名称、模块 ID、类别、插件 URL、作者以及插件的许可证信息。要获取适用于每个类别的示例插件以及与所有这些示例插件相关的更多信息,请参见 Geronimo Plugins。
<?xml version="1.0" encoding="UTF-8"?> <geronimo-plugin xmlns="http://geronimo.apache.org/xml/ns/plugins-1.1"> <name>Jakarta JSP Examples (Tomcat)</name> <module-id>geronimo/jsp-examples-tomcat/1.1.1/car</module-id> <category>Examples</category> <description>The JSP examples originally developed for Tomcat.</description> <url>http://geronimo.apache.org/</url> <author>The Apache Geronimo development community</author> <license osi-approved="true">BSD -- Apache Software License (ASL) 2.0</license> <geronimo-version>1.1.1</geronimo-version> <prerequisite> <id>geronimo/tomcat//car</id> <resource-type>Web Container</resource-type> <description> This version of the JSP Examples works with the Geronimo/Tomcat distribution. </description> </prerequisite> <dependency>geronimo/j2ee-server//car</dependency> <source-repository> http://www.geronimoplugins.com/repository/geronimo-1.1/ </source-repository> <source-repository>http://www.ibiblio.org/maven2/</source-repository> </geronimo-plugin> |
安装 Geronimo 插件
在 Create and Install Plugins Portlet(图 6)的 Install Geronimo Plugin 部分(图 8)中,请提供下列字段的值:
http://geronimoplugins.com/repository/geronimo-1.1/
单击 Search for Plugins,以列出所选存储库中所有可用的 Geronimo 插件。
选择所需的插件,例如 Jakarta JSP Examples (Tomcat)。
单击 Install Plugin(图 9)。这将自动从存储库网站下载并安装插件及其所有必需的依赖项(JAR 或其他插件)(图 10)。
安装成功后,请单击 Start <plugin name> 按钮(在本示例中为 Start geronimo/jsp-examples-tomcat/1.1/car),以便以插件形式启动所安装的应用程序或服务(图 11)。
在启动 Community Edition 服务器的命令窗口中,也会显示成功安装插件的消息(图 12)。
如果 Repository 字段中未列出要查找的远程存储库,则可以在显示的列表中添加该存储库:
在 Create and Install Plugins Portlet(图 6)中,单击 Install the Geronimo plug-ins 部分中的 Add Repository。随即会显示 Add Plugin Repository Portlet,其中将列出所有可用的插件存储库(图 13)。
在 New Repository 字段中,请输入远程存储库的 URL。例如:
http://geronimoplugins.com/repository/geronimo-1.1/
该存储库的根目录中应包含一个 geronimo-plugins.xml 文件,其中列出了该存储库中的可用插件。
您现在还可以从另一台 Community Edition 服务器下载运行的配置,方法是在 New Repository 字段中指定该远程服务器的 URL,例如:
http://geronimo-server:8080/console-standard/maven-repo/
单击 Add Repository 按钮。
现在,您指定的插件存储库便被添加到存储库列表中。它将在 Install Geronimo plugin 部分中变为可用(图 6 和图 8)。
删除 Geronimo 插件
通过 Geronimo 插件,您可以安装在 Geronimo 中运行的应用程序或服务,也可以安装它们的完整配置。但是,如果您不需要 Geronimo 插件安装的某些配置,则只需通过从服务器删除相应的插件即可卸载这些配置。要从管理控制台的 Console Navigation 窗格中删除插件,请在 Applications 部分下找到该插件,然后将其卸载。
|
结束语
本高级系统管理系列的第 2 部分介绍了 WebSphere Application Server Community Edition V1.1 中新增的管理控制台功能,包括:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者