...
- 多个 Virtualize 服务器,所有服务器都具有完全相同的版本(如果适用,包括相同的服务包),并且都授权 Virtualize 命令行(virtualizecli)。可部署容器的虚拟化服务器不支持集群。命令行(virtualizecli)。可部署容器的Virtualize 服务器不支持集群。
- 共享文件系统
- 承载多个 Virtualize 实例的多个服务器
负载均衡器硬件和软件配置
Anchor | ||||
---|---|---|---|---|
|
在所有情况下,都需要配置你的负载均衡器,以到达每个 在所有情况下,都需要配置您的负载均衡器,以到达每个 Virtualize 服务器。
如果你正在使用 如果您正在使用 Parasoft CTP(或通过 Virtualize REST API 提供/复制/修改/…资产的任何其他工具),你还需要执行以下部分中概述的附加配置。…资产的任何其他工具),您还需要执行以下部分中概述的附加配置。
注意,以下指令适用于任何负载平衡器。本文提供了 F5 LTM (Local Traffic Manager (LTM) 示例,让你了解如何在特定的负载平衡器上执行这些通用指南。示例,让您了解如何在特定的负载平衡器上执行这些通用指南。
...
配置源地址关联持续性
本节解释如何为 Parasoft CTP 配置源关联持久性。同样的原则也可以应用于配置其他任何通过 配置源关联持续性。同样的原则也可以应用于配置其他任何通过 Virtualize REST API 提供/复制/修改/…资产的工具。
源地址关联持久性将确保来自 源地址关联持续性将确保来自 Parasoft CTP 的所有调用都指向同一个节点。这种会话关联也称为“粘性会话”。
你需要为以下端口启用源地址关联持久性(会话粘性):您需要为以下端口启用源地址关联持续性(会话粘性):
- 9080 - Virtualize 默认的 HTTP 连接器(必需)
- 9443 - Virtualize 默认的 SSL 连接器(必需)
- 2424 - 数据资源库(如果数据资源库存在于该节点上,则必需)
- 9617 – 内置的事件监视器提供程序服务(Active MQ)
- 9618 – 内置的服务器点击统计提供程序服务
- 9619 – 内置的 JDBC 提供程序服务
使用 F5 Local Traffic Manager (LTM),通过启用
“跨服务匹配”和“跨虚拟服务器匹配”来配置源地址关联持久性。例如,如果希望使用 “跨服务匹配”和“跨虚拟服务器匹配”来配置源地址关联持续性。例如,如果希望使用 F5s LTM 实现源地址关联持久性,则可以使用默认的 实现源地址关联持续性,则可以使用默认的 source_addr 概要文件或创建自定义概要文件。下表显示了默认 source_addr 配置文件的设置和值。
设置 | 说明 | 默认值 |
---|---|---|
名称Name | 为概要文件定义唯一名称。必需。 | 没有默认值持久性类型 |
Persistence Type | 定义持久性概要文件的类型。必需。定义持续性概要文件的类型。必需。 | 源地址关联跨服务匹配 |
Match Across Services | 指示从客户端 IP 地址到同一虚拟 IP 地址的所有持久连接也应到同一节点。地址的所有持续连接也应指向同一节点。 | 已启用匹配跨虚拟服务器 |
Match Across Virtual Servers | 指示来自同一客户端 IP 地址的所有持久连接都应指向同一节点地址的所有持续连接都应指向同一节点 | 已启用跨池匹配 |
Match Across Pools | 指示 LTM 系统可以使用包含此持久性条目的任何池。系统可以使用包含此持续性条目的任何池。 | 已禁用 |
超时时间Timeout | 指示持久性条目超时的秒数。指示持续性条目超时的秒数。 | 180 |
掩码Mask | 定义 LTM 系统在与现有持久性条目匹配之前应该使用的掩码。系统在与现有持续性条目匹配之前应该使用的掩码。 | 0.0.0.0 |
映射代理Map Proxies | 启用或禁用代理映射。 | 已启用 |
...
使用基于优先级的会员激活
基于优先级的成员激活确保来自任何源的所有调用都将首先到达主机(如果可能的话)。要配置此功能,请将第一台机器设置为最高优先级。例如,下面是一个示例池配置文件,来自本地流量管理器的 基于优先级的会员激活可确保所有调用将首先到达主机(如果可能)。要配置此功能, 请将第一台机器的优先级设置为最高。例如,下面是一个示例池配置文件,来自本地通讯报文管理器的 F5 文档:
Code Block |
---|
pool my_pool { lb_mode fastest min active members 2 member 10.12.10.7:80 priority 3 member 10.12.10.8:80 priority 3 member 10.12.10.9:80 priority 3 member 10.12.10.4:80 priority 2 member 10.12.10.5:80 priority 2 member 10.12.10.6:80 priority 2 member 10.12.10.1:80 priority 1 member 10.12.10.2:80 priority 1 member 10.12.10.3:80 priority 1 } |
...
Parasoft 数据存储库配置
基于 MongoDB 的 Parasoft 数据存储库应该通过标识一个主数据存储库(其中包含你希望复制的数据),并创建一个复制集来配置集群。要做到这一点,请遵循以下步骤(从 数据存储库应该通过标识一个主数据存储库(其中包含您希望复制的数据),并创建一个副本集来配置集群。要做到这一点,请遵循以下步骤(从 MongoDB 文档中获取并修改):
- 停止所有你希望成为复制集一部分的数据存储库。停止所有您希望成为副本集一部分的数据存储库。
创建密钥文件,副本集的每个成员将使用它们来对服务器进行相互身份验证。创建密钥文件,复制集的每个成员将使用该密钥文件彼此对服务器进行身份验证。
若要生成用于密钥文件的伪随机数据,请发出以下 openssl 命令:Code Block openssl rand -base64 741 > mongodb-keyfile chmod 600 mongodb-keyfile
你可以使用你选择的任何方法生成密钥文件。始终确保密钥文件中存储的密码很长,并且包含大量的平均信息量。以这种方式使用 您可以使用您选择的任何方法生成密钥文件。始终确保密钥文件中存储的密码很长,并且包含大量的平均信息量。以这种方式使用 openssl 有助于生成这样一个密钥。
- 将 mongodb-keyfile 密钥文件复制到复制集的每个成员。将这些文件的权限设置为 密钥文件复制到副本集的每个成员。将这些文件的权限设置为 600,以便只有文件的所有者才能读取或编写此文件,以防止系统上的其他用户访问共享机密。
从主数据存储库开始,使用 -keyFile 和 -replSet 命令行选项启动副本集的每个成员(分别指定密钥文件和副本集的名称)。若要添加这些选项,请编辑数据存储库的 server.sh 或 server.bat 脚本文件(在调用 mongodb 的行上)。 例如:
Code Block mongod --keyFile /mysecretdirectory/mongodb-keyfile --replSet "rs0"
连接到主数据存储库,并作为管理用户进行身份验证,该管理员用户由 server.sh 或 server.bat 脚本中的 M_USER 变量创建:
Code Block "rs.add("mongodb1.example.net:2424")
- (可选)如果希望增加副本集的编写安全性,请修改主数据存储库的编写关注点。使用默认设置,当一个成员确认写入时,客户端返回;你可以改变这一点以使大多数人必须承认编写。有关更多详情,请查阅 (可选)如果希望增加副本集的编写安全性,请修改主数据存储库的编写关注点。使用默认设置,当一个成员确认写入时,客户端返回;您可以更改此设置,以便大多数人必须承认该编写操作。有关更多详情,请查阅 MongoDB 文档。
在主数据存储库上,使用 rs.initiate() 初始化副本集:
Code Block rs.initiate()
这将启动一个由当前成员组成的集合,该集合使用默认的复制集配置。这将启动一个由当前成员组成的集合,该集合使用默认的副本集配置。
在主数据仓库上,使用 在主数据存储库上,使用
rs.conf()
验证初始 replica set 配置,以显示 replica set configuration 对象:Code Block rs.conf()
复制集配置对象应类似如下:副本集配置对象应类似如下:
Code Block { "_id" : "rs0", "version" : 1, "members" : [ { "_id" : 1, "host" : "mongodb0.example.net:27017" } ] }
使用 rs.add() 方法将剩余的复制集成员添加到复制集。必须连接到主数据存储库,才能将成员添加到复制集。方法将剩余的副本集成员添加到副本集。必须连接到主数据存储库,才能将成员添加到副本集。
在某些情况下,rs.add() 可以触发一个选举。如果连接到的数据存储库成为辅助存储库,则需要将 可以触发一个筛选机制/条件。如果连接到的数据存储库成为辅助存储库,则需要将 mongo shell 连接到新的主存储库,以便继续添加新的副本集成员。使用 rs.status() 来标识复制集中的主节点。来标识副本集中的主节点。
下面的例子添加了两个成员:Code Block rs.add("mongodb1.example.net") rs.add("mongodb2.example.net")
完成后,你就拥有了一个功能齐全的副本集。新的复制集将选择一个主节点。完成后,您就拥有了一个功能齐全的副本集。新的副本集将选择一个主节点。
使用 rs.status() 操作检查复制集的状态:操作检查副本集的状态:
Code Block rs.status()
技巧提示
...
- CTP 和 Virtualize 桌面可以修改实时资产。当节点通过负载平衡器进行通信时,CTP 和 Virtualize 将集群视为单个服务器。注意,发送到 CTP 的服务器名(在 Virtualize 服务器或 localsettings.properties 中配置)必须在所有节点上相同。中配置)在所有节点上都必须相同。
- 集群环境不支持录制。录制应该在资产提升之前的登台基础设施上执行。集群环境不支持录制。应该在资产提升之前,在分段基础设施上进行录制。。
资产提升
- 使用源代码控制存储“生产级”资产和版本信息。将资产检出到共享文件系统中,以便进行初始节点配置。
消耗
- 所有 AUT 流量都被发送到负载均衡器,并使用通讯报文都被发送到负载均衡器,并使用 在负载平衡器后面设置 Virtualize 服务器集群负载均衡器硬件和软件配置中提到的设置进行适当的过滤。
- 为了确保更改只发送到一个服务器,应该配置 Virtualize 服务器的负载平衡器,使用 在负载平衡器后面设置 Virtualize 服务器集群负载均衡器硬件和软件配置中定义的技术将配置消息或“更改”消息发送到集群中的单个节点。应该为处理 Virtualize 桌面或 CTP 发送的“更改”的端口(默认为 9080/9443)和/或路径(/axis2 SOAP 或 /soavirt/api/ REST)执行此操作。
- 为了确保有状态资产的一致行为, Virutalize 服务器负载平衡器必须将单个会话的所有流量定向到单个节点。注意:服务器负载平衡器必须将单个会话的所有通讯报文定向到单个节点。注意:
- 有状态资产的流量应该只发送到一个节点。换句话说,它不应该在“first 有状态资产的通讯报文应该只发送到一个节点。换句话说,它不应该在“first available”中运行,以确保多个资产不会多次更改状态。
- 如果有状态的资产打算跨会话保存状态,那么节点将需要将状态存储在同步数据源中(比如,数据存储库)。