内容


使用 WebSphere eXtreme Scale 配置 WebSphere Commerce 以提高性能、规模和竞争力

Comments

简介

性能和规模在 Web 零售领域的竞争中至关重要。如果网站由于流量过大而阻塞,就可能导致消费者兴趣降低,交易失败,销售收入减少。关键是要计划峰值负载,确保消费者心情愉快,注意力集中,持续购物。通过结合 IBM WebSphere Commerce 的强健功能和 IBM WebSphere eXtreme Scale 的性能和规模优势,您的零售网站就能保证消费者拥有持续稳定、令人满意的消费体验。

WebSphere Commerce 是作为一个 Java™ EE 应用程序提供的,在强健的 IBM WebSphere Application Server 平台上运行。实际上,WebSphere Commerce 已经充分利用了 WebSphere Application Server 的可伸缩性和性能特性,比如集群化和动态缓存。动态缓存服务是 WebSphere Application Server 的一个特性,它提供一个内存中 (in-memory) 缓存,通过避免重新生成最近没有更改的动态 Web 内容来改进性能。内容存储于缓存中并被共享,直至失效。

WebSphere Commerce 网站广泛使用动态缓存服务来减少数据库往返次数,从而实现性能改进。完整页面 (JSP)、页面片段、命令以及用户相关对象数据都存储在动态缓存中。而且,您还有机会进一步定制所存储元素的类型以及它们保存在动态缓存中的时间长度。

WebSphere eXtreme Scale 包含对充当动态缓存提供者的支持,因此可使用它为任意 WebSphere 配置提供动态缓存。本文利用这个提供者来支持 WebSphere Commerce 的动态缓存需求。这是一种相对简单的配置更改,可以使用 WebSphere Application Server 管理控制台来完成。不必更改 WebSphere Commerce 应用程序或您的环境中目前使用的任何管理工具,即使它们依赖于现有的动态缓存 API。

本文旨在对执行下面的迁移所需的更改进行简要说明:从使用默认动态缓存实现的 WebSphere Commerce 配置迁移,到使用远程 IBM WebSphere eXtreme Scale 动态缓存实现的配置。本文假定您熟悉 WebSphere Commerce 及其动态缓存服务的用法。本文还将简要介绍 WebSphere eXtreme Scale,以及它在 WebSphere Commerce 环境中能够提供哪些好处。

有关这个配置中可用选项的各个方面的详细信息,请参阅 产品文档、IBM Redbook Scalable, integrated solutions for elastic caching using WebSphere eXtreme Scale、以及本文列示的其他 参考资料

场景概述

本文使用的场景是:WebSphere Commerce 是作为单个服务器安装来运行的,发布了 Madisons starter store(WebSphere Commerce 中已包含)归档文件以便测试。一个独立 WebSphere eXtreme Scale 映像在相同的主机上运行,该主机附带了一个目录服务器和两个容器服务器。为缓存存储创建了一个远程拓扑,缓存存储位于 WebSphere Commerce JVM 外部。在这个配置中,实际数据网格是作为一个独立 WebSphere eXtreme Scale 实现来运行的,但也可以轻松将其配置为在 WebSphere Application Server 映像中运行。这是一个经过简化的环境,但足以演示 WebSphere 管理控制台中所需的步骤,甚至适用于更复杂的配置。与更复杂的环境相比,唯一重要的区别是需要在每个 WebSphere Commerce 服务器或集群上执行这些步骤。

图 1 显示了主要组件的配置的高级结构。WebSphere Commerce 服务器被配置为使用通过 WebSphere eXtreme Scale 提供的动态缓存提供者。这个缓存提供者通过目录服务器连接到网格,目录服务器被定义为能够访问数据网格。向目录服务器注册数据网格。鉴于 WebSphere Commerce 已经配置为使用动态缓存,您只需更改动态缓存提供者,即可获得 WebSphere eXtreme Scale 带来的好处。

图 1. 高级设计
图 1. 高级设计
图 1. 高级设计

样例环境

本文描述的场景使用以下产品版本创建:

  • WebSphere Commerce V7.0.0.2
  • WebSphere Application Server V7.0.0.13
  • WebSphere eXtreme Scale V7.1 以及 cumulative fix 1

尽管本文没有介绍,以下最低产品级别应该能够支持类似环境,但有一些配置区别:

  • WebSphere Commerce V7.0.0.1 与 WebSphere eXtreme Scale V7.1.0.1
  • WebSphere Commerce V6.0.0.7 与 WebSphere eXtreme Scale V7.0 iFix 4(以及补丁 PM21272)

另外,这里描述的示例是在一个 Linux® 服务器上实现的。如果您使用的是 Windows® 服务器,那么应在本文引用脚本的任何时候使用 *.bat 文件替代 *.sh 文件,同时根据需要修改路径语句。

参阅产品文档和上面引用的 Redbook (小节 6.3.3 WebSphere eXtreme Scale prerequisites and following),详细了解不使用本文指定的版本的配置区别。

规划环境

应该仔细考虑您的系统环境。为便于说明,本文使用了一个简单的配置,但实际生产环境与此完全不同。例如,本文使用 dynacache-remote-deployment.xml 中设置的默认分区数量,只有一个目录服务器和两个容器服务器。在生产环境中,应该考虑动态缓存中存储的条目的最大数量、记录大小、您的 WebSphere eXtreme Scale 复制策略,以及确定分区和容器服务器数量时的其他几个因素。考虑要分配的 WebSphere eXtreme Scale 目录服务器数量时,还必须考虑系统可用性要求(请参阅 参考资料)。

利用 WebSphere eXtreme Scale 作为动态缓存提供者时,考虑您的环境的各个组件之间的网络带宽也很重要。在配置动态缓存以便利用 WebSphere eXtreme Scale 时,所有缓存访问将通过网络而不是使用本地缓存来实现。因此,必须确保 WebSphere Commerce 服务器和 WebSphere eXtreme Scale 容器服务器之间的带宽连通性足够高,最大限度地减少网络延迟。如果在考虑这些组件之间的连通性时没有足够重视,最终结果可能是:在较低的负载下,该配置的性能可能比之前的配置更差。

为何要联用 WebSphere eXtreme Scale 和 WebSphere Commerce

将 WebSphere eXtreme Scale 用作 WebSphere Commerce 环境中的动态缓存提供者有很多好处。最重要的好处也许是消除重复的缓存实例以及保持它们同步所需的必要验证流量。

在默认动态缓存实现中,每个 WebSphere Commerce 服务器中都维护了一个缓存副本,需要验证处理过程来保持这些缓存同步。在大型系统中,这需要大量内存和验证工作。如您所见,每个 WebSphere Commerce 服务器都包含相同的缓存数据集。根据使用的验证逻辑,每个服务器都可能拥有一个完整的缓存副本,但随着时间推移,缓存通常会达到一种稳定状态,这是因为每个服务器缓存都增长为包含几乎相同的缓存副本。服务器之间需要验证逻辑来同步数据,如图 2 所示。

图 2. 默认动态缓存
图 2. 默认动态缓存

这种实现能够很好地满足小缓存需求,也能支持较大的缓存需求:使用磁盘卸载功能来支持较大的缓存,其大小比仅用内存的缓存可能达到的大小要大得多。但是,当事务量上升,添加额外的服务器以满足增长后的流量的需求时,这种模式就开始土崩瓦解了。服务器增加意味着验证流量增加。类似地,缓存增加会导致磁盘需求增加,从而导致可能需要昂贵的 SAN 解决方案。随着规模增加,会迅速出现一个饱和点:缓存磁盘卸载、验证流量或者二者同时出现瓶颈。而且,每添加一个新服务器,它的缓存都必须 “预热”,这是一种代价高昂的操作,会给系统资源带来额外的压力。

图 3 显示了一个类似场景,其中采用了 WebSphere eXtreme Scale 弹性缓存的一个远程拓扑部署。有一个共享缓存副本可供所有 WebSphere Commerce 服务器利用。WebSphere Commerce 服务器之间的验证流量被消除,因为它们不再承担管理缓存的责任。没错,所有访问都必须通过网络来实现,但这个问题可以通过 WebSphere eXtreme Scale 中提供的几个优化功能(比如数据压缩)得以缓解。通过添加更多 JVM 来支持甚至更大的缓存需求,这种弹性缓存解决方案可以轻松扩展。弹性可以通过同步和异步复制提供,还可以通过配置同步和异步复制来满足您的特殊需求。

图 3. WebSphere eXtreme Scale 动态缓存
图 3. WebSphere eXtreme Scale 动态缓存
图 3. WebSphere eXtreme Scale 动态缓存

Commerce 解决方案以其他多种方式受益于这个共享的弹性缓存:

  • 与使用典型的磁盘卸载时不同,不必使用昂贵的 SAN 磁盘阵列来满足增长的磁盘需求。
  • WebSphere eXtreme Scale 在商品及其 (commodity box) 上运行,这个软件使它们具有完全容错能力。
  • WebSphere eXtreme Scale 提供了完美的线性缩放,只需向网格添加另一台机器。
  • 每个缓存条目都只生成一次(不是每个服务器一次),节约了 CPU 和磁盘 I/O。
  • 缓存条目对每个集群只验证一次,而不是对集群中的每个服务器都验证一次;然后,这些缓存条目只重新生成一次,供集群中的所有服务器共享。这极大地降低了磁盘 I/O 和 CPU 需求。
  • 添加服务器时,由于有共享缓存,缓存 “预热” 更快。

这个优势列表还有可能变得更长,因为几乎没有不利因素,所有这些好处只需少量配置更改即可实现。

使用默认动态缓存提供者

在开始进行配置更改以使用 WebSphere eXtreme Scale 之前,检查当前配置将有所帮助。本文使用的配置通过 WebSphere Commerce 快速安装创建,这种安装方式在一台机器上部署一个完整的 WebSphere Commerce 映像。生成的配置不适用于生产用途,但足以实现本文的目标。WebSphere Commerce 提供的 Madisons 商店样例已经安装,可用来充当填充动态缓存的工具。我们来看看目前这个使用默认动态缓存提供者的配置。

  1. 执行以下步骤,启动 Integrated Solution Console (ISC):
    • 在一个浏览器中,访问 http://<hostname>:9060/ibm/console。根据您的安装,主机名和控制台端口可能有所不同。
    • 输入您的应用服务器管理用户 ID 和密码(如果需要),然后单击 Log in
  2. 在导航树中,单击 Servers 展开 Server Types 菜单。选择 WebSphere application servers,在右侧面板中显示所有应用服务器列表,如图 4 所示。
    图 4. 应用服务器
    图 4. 应用服务器
    图 4. 应用服务器
  3. 在右侧面板中,选择 server1(或者您用于 WebSphere Commerce 安装的服务器),查看这个服务器的配置细节(参见图 5)。
    图 5. 服务器视图
    图 5. 服务器视图
    图 5. 服务器视图
  4. 展开 Container Settings 下方的 Container Services,然后单击 Dynamic cache service,如图 6 所示。
    图 6. Container Services
    图 6. Container Services
    图 6. Container Services
  5. 这个面板显示缓存提供者的当前设置。注意,请将 Cache provider 设置为 Default dynamic cache(参见图 7)。如果您已经使用 WebSphere eXtreme Scale 客户端扩大了您的应用服务器,那么您可以单击下拉列表并查看 WebSphere eXtreme Scale 的替代选项。
    图 7. 默认动态缓存提供者
    图 7. 默认动态缓存提供者
    图 7. 默认动态缓存提供者
  6. 再次单击 server1,要么执行上面的步骤 2 和步骤 3,要么简单地单击右侧面板顶部的导航路径记录 (breadcrumb trail) 中的服务器,如图 8 所示。
    图 8. 导航路径记录
    图 8. 导航路径记录
    图 8. 导航路径记录
  7. 在 server1 细节面板中,展开 Server Infrastructure 下方的 Java and Process Management 并选择 Process definition(参见图 9)。
    图 9. Process definition
    图 9. Process definition
    图 9. Process definition
  8. 单击 Additional Properties 下方的 Java Virtual Machine(参见图 10)。
    图 10. Java Virtual Machine
    图 10. Java Virtual Machine
    图 10. Java Virtual Machine
  9. 在 Additional Properties 下方,选择面板中的 Custom properties,如图 11 所示。
    图 11. Additional Properties
    图 11. Additional Properties
    图 11. Additional Properties
  10. 仔细观察与 com.ibm.ws.cache* 相关的已定义属性集。这些属性用于配置动态缓存行为。当您配置这个映像来利用 WebSphere eXtreme Scale 时,将向这个集合添加其他属性。您看到的画面应该类似于图 12。
    图 12. Custom properties
    图 12. Custom properties
    图 12. Custom properties
  11. 下面,我们看看这个配置在测试商店应用程序 Madisons 中的表现如何。您可以通过管理控制台从一个 Internet Explorer 浏览器管理 WebSphere Commerce 站点(http://<hostname>:port/adminconsole)。(Internet Explorer 目前是 WebSphere Commerce 管理控制台的必要 Web 浏览器。对于这个示例,管理控制台用于发布 Madisons 商店站点样例。站点发布后,可以从任何 Web 浏览器访问它,使用 http://<hostname>/webapp/wcs/stores/Madisons/index.jsp 显示商店主页,如图 13 所示。
    图 13. Madisons 在线购物
    图 13. Madisons 在线购物
    图 13. Madisons 在线购物

    当您单击一些类别和图像时,您会看到,Madisons 是一个非常不错的零售网站样例,能够充分展现 WebSphere Commerce 的功能。单击各种页面、产品和说明时,生成的 Web 内容将保存到动态缓存中,以便您或他人稍后引用。(注意,动态缓存配置通过 WARs 中的 cachespec.xml 文件在应用程序中内置了失效逻辑。许多默认值都拥有一个 5 分钟的超时设置,5 分钟过后将不再处于活动状态。因此,甚至当您还在填充缓存中的实例时,许多实例也会在 5 分钟后超时。)
  12. 使用 Madisons 样例进行在线浏览和购物之后,我们来看看缓存中填充了哪些内容。我们可以使用 Extended Cache Monitor,这是一种预览技术,是 WebSphere Application Server 提供的缓存监控器的扩展。这些扩展允许监控器更好地管理多个动态缓存提供者。它还提供一个 MBean 统计数据选集,允许您查看对象缓存内容。

    在一个 Web 浏览器中输入这个 URL,访问 Extended Cache Monitor(根据您的安装,端口可能有所不同):http://<hostname>:9061/cachemonitor。初始缓存监控器屏幕应该如图 14 所示。

    图 14. Extended Cache Monitor
    图 14. Extended Cache Monitor
    图 14. Extended Cache Monitor

使用 Madisons 商店样例进行一些活动后,缓存监控器 Cache Contents 页面应该显示一些类别显示条目,其中包括 Cach ID 中的 “TopCategoriesDisplay”(参见图 15)。

图 15. Extended Cache Monitor 缓存内容
图 15. Extended Cache Monitor 缓存内容
图 15. Extended Cache Monitor 缓存内容

安装 WebSphere eXtreme Scale

这个示例使用 WebSphere eXtreme Scale V7.1,它有两种安装方法:一是独立部署,安装到一个新目录中;二是集成部署,安装到一个 WebSphere Application Server 单元之上。在本文描述的场景中,WebSphere eXtreme Scale 安装为一个独立部署。WebSphere eXtreme Scale 客户端安装到 WebSphere Commerce 部署上。完成下面的步骤,为这个练习安装 WebSphere eXtreme Scale:

  1. 将 WebSphere eXtreme Scale 作为一个独立产品安装。
  2. 在 WebSphere Commerce 部署上安装 WebSphere eXtreme Scale 客户端:再次运行安装,选择 WebSphere Commerce 安装目录和 client 安装选项。(或者,您也可以选择在 WebSphere Commerce 安装映像中运行 WebSphere eXtreme Scale 目录和容器服务器,这需要跳过步骤 1 并选择指向 WebSphere Commerce 目录的 server 安装选项。这是前面提到的 Redbook 中采用的方法。)
  3. 使用 WebSphere Application Server 配置文件管理工具,通过 WebSphere eXtreme Scale 扩大所有 WebSphere Commerce 节点。

创建 eXtreme Scale 网格配置

本例中的配置使用一个独立 WebSphere eXtreme Scale 部署。也可以选择在 WebSphere Application Server 单元中的部署管理器、节点代理或应用服务器中运行目录服务器。默认情况下,在 WebSphere Application Server 环境中安装 WebSphere eXtreme Scale 时,WebSphere eXtreme Scale 目录服务器会在该单元的部署管理器中运行。在配置 WebSphere Application Server 来管理适当的节点代理和服务器时必须格外小心。为简便起见,这里描述的目录和容器服务器将作为独立进程运行。这通常是一种好的配置方法,可提供相应程度的隔离,以便独立管理。但是,这不是普遍适用每个用户的正确选择。在生产环境中创建和放置目录和容器服务器时必须仔细考虑。例如,您肯定希望为这个简单场景定义的目录服务器不止一个。在生产环境中,为保持弹性,应该在一个目录服务器域中定义多个目录服务器。

  1. 启动目录服务器

    每个网格环境都必须拥有一个目录服务器。在这个经过简化的环境中,单个目录服务器将作为一个独立进程启动。对于这个示例,在 <WXS_HOME>/ObjectGrid/bin 目录中执行以下命令,启动目录服务器(如果使用的是 Windows 服务器,则应该使用 *.bat 脚本和适当的路径语句,而不是这里显示的 Linux 示例):

    ./startOgServer.sh catalog1

    <WXS_HOME> 目录是其中安装 WebSphere eXtreme Scale 的目录。(参见 Information Center,了解关于使用非默认目录服务端点或端口启动目录服务的更多信息。)

  2. 启动容器服务器

    一旦目录服务器可用,即可启动容器服务器,托管 WebSphere eXtreme Scale 网格中的动态缓存数据。在本例中,启动了两个独立容器服务器。与目录服务器类似,应该根据您的特殊需求采用不同的方法来配置生产环境。但至少应该创建 3 个容器服务器,以便更好地分发网格内容。

    WebSphere eXtreme Scale 提供了一组用来动态缓存网格的默认配置的文件。您应该将这些文件复制到一个新位置(例如 <CONFIG_HOME>),然后根据需要编辑它们。

    在一个独立安装中,这些文件可能位于 WebSphere Application Server 部署的 <WXS_HOME>/ObjectGrid/dynacache/etc 目录或 <WAS_HOME>/optionalLibraries/ObjectGrid/dynacache/etc 目录中。

    这个配置包含两个文件,它们为 dynacache 定义网格结构和部署特征:

    • dynacache-remote-objectgrid.xml 提供 WebSphere eXtreme Scale 动态缓存提供者所需的网格定义。您应该不用编辑这个文件。
    • dynacache-remote-deployment.xml 提供网格的部署特征。您应该熟悉这个文件的内容并根据需要编辑该文件。请参阅 Information Center 查看文件内容说明。

    在本例中,需要对 dynacache-remote-deployment.xml 进行两个小小的改动:

    • numInitialContainers=”2” 的初始值是 “1”。这个值指定您将运行两个容器,数据网格在有两个容器服务器可用之前不会启动。这将确保各个分区的数据分布均匀。
    • developmentMode=”true” 的初始值是 “false”。样例环境在同一个节点上运行所有容器。通常,只会在主集群的不同节点上创建副本。您应该为开发模式设置这个值,指出即使容器服务器位于同一个节点上,仍然需要创建副本。

    运行独立容器服务器时,这些文件将作为 startOgServer 命令的参数,以及定位目录服务的参数。在 <WXS_HOME>/ObjectGrid/bin 目录中运行以下命令,启动每个容器服务器:

    ./startOgServer.sh container1 -objectGridFile <CONFIG_HOME>/dynacache-remote-objectgrid.xml -deploymentPolicyFile <CONFIG_HOME>/dynacache-remote-deployment.xml -catalogServiceEndPoints localhost:2809

    ./startOgServer.sh container2 -objectGridFile <CONFIG_HOME>/dynacache-remote-objectgrid.xml -deploymentPolicyFile <CONFIG_HOME>/dynacache-remote-deployment.xml -catalogServiceEndPoints localhost:2809

    这些更新创建的环境如图 16 所示。

    图 16. 样例网格布局
    图 16. 样例网格布局
    图 16. 样例网格布局

    有关使用非默认目录服务端点或端口启动容器服务的详细信息,请参见 Information Center

完成这些步骤之后,您现在已拥有一个已初始化为托管动态缓存数据网格的配置。

配置 WebSphere Commerce 服务器

下一步是配置 WebSphere Commerce 应用服务器,以便利用 WebSphere eXtreme Scale 动态缓存提供者,后者将连接到刚才定义的目录和容器服务器。在更高的层面上,这意味着您需要将 WebSphere Commerce 服务器动态缓存提供者更改为 WebSphere eXtreme Scale,为 WebSphere Commerce 服务器 JVM 添加一些自定义属性,创建 WebSphere eXtreme Scale 客户端目录服务域以指向您的目录服务。

  1. 配置动态缓存提供者
    1. 首先在 WebSphere Integrated Solutions Console 中选择 WebSphere Commerce 服务器:选择 Servers > Server Types > WebSphere application servers,然后选择 server1。展开 Container Settings 下方的 Container Services,单击 Dynamic cache service,如图 17 所示。
      图 17. Container services
      图 17. Container services
      图 17. Container services
    2. 接下来,单击 Cache provider 下拉列表,选择 WebSphere eXtreme Scale(参见图 18)。
      图 18. Cache provider
      图 18. Cache provider
      图 18. Cache provider
    3. 确保选中 Enable cache replication 选项,如图 19 所示。
      图 19. Enable cache replication
      图 19. Enable cache replication
      图 19. Enable cache replication
    4. 单击 OK,然后将更改保存到主配置(参见图 20)。
      图 20. 保存更改
      图 20. 保存更改
      图 20. 保存更改
  2. 为 WebSphere eXtreme Scale 动态缓存添加自定义属性

    下面,需要将一些必要的自定义属性添加到 WebSphere Commerce 服务器的 JVM。您将添加 4 个属性 “键/值” 对。这里只提供这些属性的概述;有关每个设置的属性和意义的详细信息,请参阅 Information Center

    • com.ibm.websphere.xs.dynacache.topology

      这是需要设置的最重要属性。添加该属性并将其值设置为 remote。这个属性指定您正在为这个服务器配置的 WebSphere eXtreme Scale 动态缓存的拓扑。remote 值表明缓存数据存储在 WebSphere Commerce JVMs 外部。其他可能使用的值包括 localembeddedembedded_partitioned,具体使用哪个取决于所需的配置。

    • com.ibm.websphere.xs.dynacache.disable_recursive_invalidate

      这是一个性能建议,目的是防止依赖项 ID 的回归验证。请将该属性值设置为 true

    • com.ibm.websphere.xs.dynacache.ignore_value_in_change_event

      这也是一个性能建议。请将其值设置为 true,这表明不应该针对某个更改事件对缓存值进行反序列化。

    • com.ibm.websphere.xs.dynacache.enable_compression

      这又是一个性能建议,用于压缩动态缓存的内容。请将这个值设置为 true 将减少缓存中数据的大小,并减小网络流量。

    您需要使用 WebSphere Integrated Solutions Console 再次进行这些更改。

    1. 从导航面板选择 Servers > Server Types > WebSphere application servers,然后选择右侧面板中的 server1。在 Server Infrastructure 下方,单击 Java and Process Management > Process definition,如图 21 所示。
      图 21. Java and Process Management
      图 21. Java and Process Management
      图 21. Java and Process Management
    2. 在 Process definition 面板中,选择 Additional Properties 下方的 Java Virtual Machine(参见图 22)。
      图 22. Java Virtual Machine
      图 22. Java Virtual Machine
      图 22. Java Virtual Machine
    3. 选择 Additional Properties 下方的 Custom Properties(参见图 23)。
      图 23. Custom properties
      图 23. Custom properties
      图 23. Custom properties
    4. 您现在应该看到这个服务器的自定义属性的视图,类似于图 24。
      图 24. Properties
      图 24. Properties
      图 24. Properties
    5. 对于表 1 中的每个属性,单击 New(在图 24 中高亮显示),输入属性的 NameValue,然后单击 OK。您会注意到一条提示保存配置的消息。您可以等到所有属性都添加以后才保存配置。

    表 1. 属性名称和值

    属性名称
    com.ibm.websphere.xs.dynacache.topologyremote
    com.ibm.websphere.xs.dynacache.disable_recursive_invalidatetrue
    com.ibm.websphere.xs.dynacache.ignore_value_in_change_eventtrue
    com.ibm.websphere.xs.dynacache.enable_compressiontrue
    1. 单击 Save 按钮,保存新设置,如图 25 所示。
      图 25. 保存设置
      图 25. 保存设置
      图 25. 保存设置
    2. 您的新属性列表应该类似于图 26。新条目在图中高亮显示。
      图 26. 完成的属性
      图 26. 完成的属性
      图 26. 完成的属性
  3. 为 WebSphere eXtreme Scale 目录服务器创建目录服务器域

    下一步是配置 WebSphere eXtreme Scale 目录服务域以引用您的目录服务器。同样,会从 WebSphere Application Server 中的 Integrated Solutions Console 开始。

    1. 在导航面板中,展开 System administration > WebSphere eXtreme Scale。然后单击 Catalog service domains,您会看到图 27 中显示的视图。您需要创建一个新的目录服务域,因此请单击 New
      图 27. Catalog service domains
      图 27. Catalog service domains
      图 27. Catalog service domains
    2. 要创建一个新的目录服务域,输入想用于在面板上引用这个域的 Name。本例中使用值 wxs71 。由于您的目录服务器正在 WebSphere Application Server 外部运行,因此选择 Remote Server,输入目录服务的 Remote Server 主机名,然后输入 Listener Port2809(这是默认值;您的端口可能有所不同)。另外,请选择 Name 字段下面的复选框,确保这个域被设置为默认值,如图 28 所示。单击 OK,创建一个新域。
      图 28. 新目录服务域
      图 28. 新目录服务域
      图 28. 新目录服务域
    3. 此时,您可以测试连接,也可以将更改保存到主配置。要先保存配置,请单击 Save(参见图 29)。
      图 29. 保存目录服务域
      图 29. 保存目录服务域
      图 29. 保存目录服务域
    4. 要验证您的设置是否正确,可以测试连接:选择刚刚创建的域,然后单击 Test connection(参见图 30)。
      图 30. Test connection
      图 30. Test connection
      图 30. Test connection

    如果一切正常,您应该看到面板顶部显示如图 31 所示的消息。

    图 31. 连接成功
    图 31. 连接成功
    图 31. 连接成功

    配置 WebSphere Commerce 使用动态缓存,利用一个外部独立 WebSphere eXtreme Scale 网格所需的步骤就是这些了。您可能还需要一个管理步骤,您可以测试它。

  4. 回收 WebSphere Commerce 服务器

    您必须回收 WebSphere Commerce 服务器。但是,在此之前,最好确保您已经为 WebSphere eXtreme Scale 运行必要的目录服务器和容器服务器。这些服务器应该从您执行 前面的步骤 起就开始运行。

    您可以使用喜欢的任何方式重启 WebSphere Commerce Server。如果您正在运行单个服务器环境,比如本例,可以通过以下命令行重启服务器:

    <WAS_HOME>/AppServer/profiles/demo/bin/.stopServer.sh server1

    根据提示输入管理员 ID 和密码。然后,运行以下命令重启服务器:

    <WAS_HOME>/AppServer/profiles/demo/bin/.startServer.sh server1

    当服务器处于活动状态时,所有配置更改将生效,服务器应该连接到了数据网格。如果一切正常,您会看到您的 WebSphere Commerce 服务器的 SystemOut.log 中显示了清单 1 中所示的消息。

    清单 1
    [3/2/11 9:45:05:503 EST] 00000000 CacheServiceI I   DYNA1054I: Dynamic Cache (core 
    cache) initialized successfully.
    [3/2/11 9:45:05:519 EST] 00000000 ObjectCacheSe I   DYNA1056I: Dynamic Cache (object 
    cache) initialized successfully.
    [3/2/11 9:45:05:531 EST] 00000000 CacheProvider I   CWOBJ4500I: WebSphere eXtreme 
    Scale Dynamic Cache provider is successfully initialized.
    [3/2/11 9:45:06:454 EST] 00000000 ObjectGridImp I   CWOBJ4700I: The map name 
    IBM_DC_PARTITIONED_baseCache matched the regular expression of template map 
    IBM_DC_PARTITIONED_.*.  The IBM_DC_PARTITIONED_baseCache map has been created 
    for ObjectGrid DYNACACHE_REMOTE.
    [3/2/11 9:45:06:488 EST] 00000000 CacheProvider I   CWOBJ4508I: The WebSphere 
    eXtreme Scale provider has created a Dynamic Cache instance with name baseCache 
    using topology remote.

验证 WebSphere eXtreme Scale 正用于动态缓存

现在可以验证配置是否如预期运行。您可以通过 SystemOut.log 确定配置是否适当,WebSphere Commerce 服务器是否连接到网格。但是,最好还是亲眼看到实际将条目添加到 WebSphere eXtreme Scale 网格中,以便确认配置确实有效。

在数据网格中看到内容之前,需要执行一些操作来实际生成一些内容。本例使用了 Madisons 商店样例。(请参阅 使用默认动态缓存提供者 小节中的步骤 11 了解如何使用这个样例将内容推到动态缓存中。)完成配置步骤并重启服务器后,一部分内容将存储到数据网格中。然后,您必须与样例交互,将一些内容添加到动态缓存,从而将它们添加到数据网格。

使用 xsadmin 进行验证

要了解网格中的条目的内容,最简单的方法也许是使用 WebSphere eXtreme Scale 提供的 xsadmin.sh 或 xsadmin.bat 脚本。这些脚本位于 <WXS_HOME>/ObjectGrid/bin 中。

例如,您可以使用以下命令查看网格中的分区的大小:

./xsadmin.sh –mapsizes

在这个配置中,这个命令生成以下结果(为了节约篇幅,这里省略了部分细节)。(必须首先执行一些操作,将内容添加到网格,才能看到 xsadmin.sh -mapsizes 命令生成输出。如果没有看到类似输出,那么可能需要重新检查上述部分配置步骤。)

清单 2
/IBM/WebSphere/eXtremeScale/ObjectGrid/bin> ./xsadmin.sh -mapsizes

This Administrative Utility is provided as a sample only and is not to be
considered a fully supported component of the WebSphere eXtreme Scale product

Connecting to Catalog service at localhost:1099

****Displaying Results for Grid - DYNACACHE_REMOTE, MapSet - DYNACACHE_REMOTE******

*** Listing Maps for container1 ***
Map Name                     Partition Map Size Used Bytes (KB) Shard Type          
IBM_DC_PARTITIONED_baseCache 0         2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 1         2        656             Primary             
IBM_DC_PARTITIONED_baseCache 2         2        656             Primary             
IBM_DC_PARTITIONED_baseCache 3         3        2               AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 4         2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 5         3        2               Primary             
IBM_DC_PARTITIONED_baseCache 6         2        656             Primary             
...
IBM_DC_PARTITIONED_baseCache 41        3        3               AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 42        2        656             Primary             
IBM_DC_PARTITIONED_baseCache 43        2        656             Primary             
IBM_DC_PARTITIONED_baseCache 44        2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 45        2        656             Primary             
IBM_DC_PARTITIONED_baseCache 46        3        2               AsynchronousReplica 
Server Total: 105 (57KB)

*** Listing Maps for container2 ***
Map Name                     Partition Map Size Used Bytes (KB) Shard Type          
IBM_DC_PARTITIONED_baseCache 0         2        656             Primary             
IBM_DC_PARTITIONED_baseCache 1         2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 2         2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 3         3        2               Primary             
IBM_DC_PARTITIONED_baseCache 4         2        656             Primary             
IBM_DC_PARTITIONED_baseCache 5         3        2               AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 6         2        656             AsynchronousReplica 
...
IBM_DC_PARTITIONED_baseCache 41        3        3               Primary             
IBM_DC_PARTITIONED_baseCache 42        2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 43        2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 44        2        656             Primary             
IBM_DC_PARTITIONED_baseCache 45        2        656             AsynchronousReplica 
IBM_DC_PARTITIONED_baseCache 46        3        2               Primary             
Server Total: 105 (57KB)

Total Domain Count: 210 (114KB)
(The used bytes statistics are accurate only when you are using simple objects or the 
COPY_TO_BYTES copy mode.)

上述输出中有几点需要说明:

  • 可以看到,网格名称和 MapSet 都是 DYNACACHE_REMOTE。这是 WebSphere eXtreme Scale 动态缓存提供者使用的默认网格和 MapSet 名称。
  • 映射名称是 IBM_DC_PARTITIONED_baseCache。这是用于基本缓存动态缓存实现的默认映射。
  • 这两个容器服务器被列为带有适当的主副本和异步副本分布。
  • 映射大小大于 2 的分区包含特定于动态缓存的内容。每个分区都将自动包含两个用于管理目的的条目,这些条目将作为动态缓存实现的一部分。其他条目代表动态缓存中的应用程序内容。
  • WebSphere eXtreme Scale V7.1 中的 xsadmin 实用工具(样例中使用)应该以字节数或千字节数(KB)统一显示条目。但是,除非所有条目的大小都增长到 1KB 以上,表中才会同时出现字节和 KB 条目。在上面的输出中,使用字节且计数为 656 的条目代表 656 字节,而使用千字节且计数为 2 或 3 的条目表示 2KB 或 3KB。(如输出横幅部分所述,xsadmin 是一个不受支持的实用工具,希望不久之后会有一个 iFix 来解决这个问题。)
  • 输出还显示了每个容器服务器的总服务器大小。这个大小被正确计算并以 KB 显示。

使用 WebSphere eXtreme Scale Web 控制台验证

验证 WebSphere eXtreme Scale 数据网格中的动态缓存内容的推荐方法是使用 V7.1 中提供的新 WebSphere eXtreme Scale Web 控制台。这个控制台允许您绘制您的环境中的当前和历史统计数据示意图。(请观看 这段视频,了解如何配置和使用 WebSphere eXtreme Scale Web 控制台来监控您的网格。)

WebSphere eXtreme Scale Web 控制台提供几个很不错的特性来观看数据网格的内容并使用数据网格。这里只展示几个例子,您可以自己研究其他特性。

要访问这个 Web 控制台,可通过浏览器访问 https://<hostname>:7443/。默认用户 ID 和密码都是 admin,除非您已经更改它们。按照视频和产品文档中的步骤创建一个域。

配置好控制台后,单击 Monitor 下拉列表,然后单击 Data Grid Domain Overview 查看图 32 中显示的视图。与 xsadmin.sh 命令类似,您可以在这个视图中再次看到为 DYNACACHE_REMOTE 列出的数据网格。根据视图中提供的使用情况,您还可以看到,您的数据网格已经收到一些内容。此时虽然只使用了您的网格的一小部分,但可以看到网格中的一些条目。

图 32. 数据网格域概览
图 32. 数据网格域概览
图 32. 数据网格域概览

现在,单击 Monitor 下方的 Data Grid Overview,查看已使用容量、缓存占用、响应时间、流量小计等项目,如图 33 所示。

图 33. 单独的数据网格概览
图 33. 单独的数据网格概览
图 33. 单独的数据网格概览

您可以查看数据网格的详细信息:选择 Monitor 下方的 Data Grid Details,然后单击动态缓存实现 IBM_DC_PARTITIONED_basecache 使用的映射,如图 34 所示。

图 34. Data Grid Detail Reports
图 34. Data Grid Detail Reports
图 34. Data Grid Detail Reports

最后,单击 Monitor 下方的 Server Overview。这将显示当前缓存占用的内存使用情况统计数据,以及一段时间内的最小值和最大值(参见图 35)。

图 35. Server overview
图 35. Server overview
图 35. Server overview

WebSphere eXtreme Scale Web 控制台提供了很多有用的统计数据,建议您深入研究它们,创建一些自定义视图。

结束语

本文描述了如何利用单独的 WebSphere eXtreme Scale 安装为 WebSphere Commerce 映像提供动态缓存。通过分步说明如何为此配置一个简单网格,以及如何配置 WebSphere Commerce 服务器来访问该网格,您了解了这个配置的性能和规模优势。本文还介绍了如何使用几个实用工具和监控工具来查看数据网格的内容,管理动态缓存。

致谢

本文作者特别感谢 IBM US 的 Jim Krueger、Charles Le Vay 和 Lan Vuong 以及 IBM Canada 的 Aaron Leung 对本文所做的贡献。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=781845
ArticleTitle=使用 WebSphere eXtreme Scale 配置 WebSphere Commerce 以提高性能、规模和竞争力
publish-date=12222011