您可以设置 Parasoft Virtualize 服务器集群,以实现水平扩展和容错。水平扩展通常用于 优化性能测试和基于云的基础设施,以实现持续集成和持续交付。Fault tolerance 通常用于增加业务关键后端系统的正常运行时间和/或促进灾难恢复。
在本章节中
配置负载平衡器以将负载路由到每个虚拟化服务器。如果您正在使用 Parasoft CTP 或通过与 Virtualize REST API 资产交互的任何其他工具),您需要执行以下部分中概述的附加配置。
以下说明适用于任何负载平衡器,但我们使用 F5 本地通讯报文管理器(LTM)作为示例,以提供关于负载平衡器配置的一般指导。
本节描述如何为 Parasoft CTP 配置源关联持久性。同样的原则也可以应用于配置任何通过与 Virtualize REST API 资产交互的工具。
源地址关联持久性确保来自 Parasoft CTP 的所有调用都路由到同一个节点。会话关联有时称为“粘性会话”。
为以下端口启用源地址关联持久性:
使用 F5 Local Traffic Manager (LTM),通过启用 Match Across Services 和 Match Across Virtual Servers 选项配置源地址关联持久性。例如,可以使用默认的源地址配置文件或创建自定义配置文件来启用源地址关联持久性。下表显示了默认 source_addr 配置文件的设置和值。
设置 | 说明 | 默认值 |
---|---|---|
名称 | 为概要文件定义唯一名称。必需。 | 没有默认值 |
持久性类型 | 定义持久性概要文件的类型。必需。 | 源地址关联 |
跨服务匹配 | 指示从客户端 IP 地址到同一虚拟 IP 地址的所有持久连接也应到同一节点。 | 已启用 |
匹配跨虚拟服务器 | 指示来自同一客户端 IP 地址的所有持久连接都应指向同一节点 | 已启用 |
跨池匹配 | 指示 LTM 系统可以使用包含此持久性条目的任何池。 | 已禁用 |
超时时间 | 指示持久性条目超时的秒数。 | 180 |
掩码 | 定义 LTM 系统在与现有持久性条目匹配之前应该使用的掩码。 | 0.0.0.0 |
映射代理 | 启用或禁用代理映射。 | 已启用 |
基于优先级的成员激活确保来自任何源的所有调用都将首先到达主机(如果可能的话)。要配置此功能,请将第一台机器设置为最高优先级。例如,下面是一个示例池配置文件,来自本地流量管理器的 F5 文档:
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 } |
确保已配置负载平衡器,以便在为负载平衡配置 Virtualize 之前,更改仅传播到一个节点。
git fetch
命令作为提交后触发器来同步共享。添加 refresh.enabled=true
属性,比如:
eclipse.preferences.version=1 version=1 refresh.enabled=true |
重启服务。
-J-Dparasoft.auto.deploy.new=false
Virtualize 集群中的部署最终将同步。当发送请求部署时,单个服务器处理请求,然后返回响应。文件系统将通知集群中的其他服务器,以进行一致性所需的更改。在某些情况下,这可能需要几秒钟。因此,可能会有一段时间,一些服务器还不知道在另一台服务器上发生了部署。
基于 MongoDB 的 Parasoft 数据存储库应该通过标识一个主数据存储库(其中包含您希望复制的数据),并创建一个复制集来配置集群。要做到这一点,请遵循以下步骤(从 MongoDB 文档中获取并修改):
启动主存储库服务器:
./bin/mongod --port 2424 --dbpath repositories |
如果 "repositories” 目录不存在,则应该创建一个。
连接到 mongo shell,并创建管理员数据库。
./bin/mongo --port 2424 use admin |
运行以下命令,创建管理员用户:
db.createUser({user:"<username>",pwd:"<password>",roles:[{role:"root",db:"admin"}]}); |
如果因为用户已存在而导致命令行失败,请运行以下命令行:
db.grantRolesToUser('admin',[{role:"<role>"}]) |
创建密匙文件。以下示例显示了基本命令:
openssl rand -base64 741 > mongodb-keyfile chmod 600 mongodb-keyfile |
将密钥文件复制到复制集的每个成员。
使用以下命令启动复制集的每个成员:
./bin/mongod --replSet "rs0" --dbpath repositories --port 2424 --auth --keyFile <mongodb-keyfile> |
在主服务器上,连接到 mongo shell,并在提示时提供密码。
./bin/mongo localhost:2424/admin -u <admin_user> -p |
运行以下命令,验证凭据:
use admin db.auth("<siteRootAdmin>", "<password>"); |
这个 shell 应该返回 1
。
使用以下命令初始化复制集:
rs.initiate() |
使用以下命令验证复制集配置:
rs.conf() |
如果主服务器的主机不正确,请使用以下命令更改主机:
cfg = rs.conf() cfg.members[0].host = "mongodb1.example.net:27017" rs.reconfig(cfg) |
对于每个辅助服务器,在主服务器的 mongo shell 中运行以下命令:
rs.add("<secondary>:<port>") |