[{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(Showing Draft Content)

远程部署Server

部署多个 Server 可以提高系统的负载均衡能力,本文为您介绍如何部署多个 Server。

注意

  • 如需单独部署其他服务,请先单独部署其他服务,再部署 Server。

  • 如需部署多 Server,请确保各 Server 的安装路径一致。

先决条件

  • 请联系销售人员获取分布式专用许可证。

  • 请在一台可访问的计算机上安装 Redis,用于记录一些内部状态并作为分布式缓存。

type=info

修改Redis 配置文件(一般为xx.conf),将Redis 绑定 IP 修改为具体本地IP而不是localhost或者127.0.0.1。

推荐 Redis 5.0 或更新版本。

  • 请在一台可访问的计算机上安装 Nginx,用于多 Server 部署完成之后的负载均衡。

操作介绍

1. 部署子节点。

在目标机器上部署节点,比如将其命名为”Server2“节点,具体请参考添加节点

注意

Server 需访问数据库,因此请注意确保安装 Server 的子节点都能访问系统配置的数据库服务。比如,需确保数据库开启了远程连接且端口开放。

2. 在主节点开启多 Server。

修改主节点上的 Wyn.conf(windows环境下默认路径为C:\Program Files\Wyn\Monitor\conf,Linux环境下默认路径为/opt/Wyn/Monitor/conf/ ),开启多 Server 部署。

具体为在配置文件的 Server 节点中添加如下内容,其中 Cache -> DistributedMemoryCache -> ConfigStringRedis 的连接字符串。

(示例中是一个多节点的Redis配置。关于对连接串字段要求,详见本页下方介绍)

image

注意

为了安全起见,也可以使用加密工具对连接字串进行加密,然后再粘贴到配置文件中。加密方法请见如何解密/加密配置文件中数据库连接字串

配置文件中如下节点的连接串中需使用IP而不是localhost或者127.0.0.1:

  • Services->Server->DataExtraction->ConnectionString,

  • Services->Server->Storage->ConnectionString

  • Services->Server->IdentityServer->ConnectionString

3. 重启主节点以及子节点中的 WynService 服务。

4. 使用多 Server 专用序列号注册产品,注册过程与单 Server时无差别。

5. 在子节点上单击 Server 后的安装按钮,安装并启动 Server。

image2022-6-29_15-16-0.png

安装成功后,子节点的 Server 将自动启动。可通过右侧的按钮禁用,启动、卸载该服务。

image2022-6-29_15-21-2.png

6. 配置 Nginx,以支持多台服务器负载均衡访问。

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
upstream wyn {
    server 10.32.7.138:51980 max_fails=3 fail_timeout=15s;
    server 10.32.6.205:51980 max_fails=3 fail_timeout=15s;
}
server {
    listen  8089;
    location / {
        add_header backendIP $upstream_addr;
        add_header backendCode $upstream_status;
        proxy_pass http://wyn;
        # support websocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host:$server_port;
        proxy_connect_timeout       300s;
        proxy_send_timeout          300s;
        proxy_read_timeout          300s;
        send_timeout                300s;
        sendfile on;
        proxy_buffer_size 64k;
        proxy_buffers   32 32k;
        proxy_busy_buffers_size 128k;
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        client_max_body_size 100M;
    }
}

7. 修改全局设置中的认证服务地址,将认证服务地址修改为 http://<Nginx IP>:<Listening port>。

image2022-2-21_14-28-17.png

8. 此时配置已经完成,可通过 Nginx 访问站点。

文中示例的 Nignx IP为10.32.5.154 端口为8089,所以我们就可以通过 http://10.32.5.154:8089 访问站点。

image2021-12-6_15-19-49.png

实际工作时,Nignx 会分发任务给两个Server 实现负载均衡效果。

image2021-12-6_15-23-13.png

image2021-12-6_15-22-34.png

type=info

提示

如系统重启后,不能正常访问站点,请您通过 http://10.32.5.154:8089/logout 退出后,重新登录站点。

Redis连接串字段

配置连接串

默认

说明

abortConnect={bool}

true (false on Azure)

如果为 true,在没有可用服务器时不会创建连接。

allowAdmin={bool}

false

指定是否允许执行 Redis 的管理员命令。

如果设置为 true,客户端可以执行所有 Redis 命令,包括危险的命令。

channelPrefix={string}

null

所有发布/订阅操作的可选通道前缀。

connectRetry={int}

3

初始期间重复连接尝试的次数。

connectTimeout={int}

5000

连接操作超时(毫秒)。

configCheckSeconds={int}

60

检查配置的时间(秒)。

defaultDatabase={int}

null

默认数据库索引。

keepAlive={int}

-1

发送消息以保持套接字处于活动状态的时间(秒)(默认为 60 秒)。

name={string}

null

redis 内连接的标识。

user={string}

null

Redis 服务器的用户(与 Redis 6 及更高版本上的 ACL 一起使用)。

password={string}

null

Redis 用户的密码。

resolveDns={bool}

false

用于指定是否在连接 Redis 服务器时解析 DNS 主机名。

设置为 true,Gces.Redis 会在连接 Redis 服务器时自动解析 DNS 主机名,以获取 Redis 服务器的 IP 地址。

设置为 false,则 Gces.Redis 会直接使用 DNS 主机名来连接 Redis 服务器。

通常情况下,可以将 resolveDns 设置为 true,让 Gces.Redis 自动解析 DNS 主机名,以便灵活地处理 Redis 服务器 IP 地址变化的情况。

但是,在某些情况下,可能需要将 resolveDns 设置为 false,例如:

如果你已经知道 Redis 服务器的 IP 地址,并希望直接使用 IP 地址来连接 Redis 服务器。

如果你的 DNS 服务器不可靠或出现故障,可能会导致 DNS 解析失败,此时可以将 resolveDns 设置为 false,避免 DNS 解析失败而无法连接 Redis 服务器。

serviceName={string}

null

用于指定 Redis 哨兵服务器的服务名称。

当使用哨兵模式连接 Redis 服务器时,需要指定 Redis 哨兵服务器的服务名称,以便 Gces.Redis 可以正确地连接到 Sentinel 服务器,并获取 Redis 服务器的主从节点信息。

如果使用哨兵模式的集群,请确保serviceName 的值必须与哨兵服务器中的服务名称一致,否则连接将会失败。

ssl={bool}

false

指定使用 SSL 加密。

sslHost={string}

null

在服务器认证中强制执行特定的 SSL 主机身份。

sslProtocols={enum}

null

使用加密连接时支持的 Ssl/Tls 版本。使用“|” 提供多个值。

syncTimeout={int}

5000

允许同步操作的时间(毫秒)。

asyncTimeout={int}

SyncTimeout

允许异步操作的时间(毫秒)。

tiebreaker={string}

__Booksleeve_TieBreak

是 Redis 哨兵模式下的一个配置项,用于指定在主从切换的情况下,如何选择新的主服务器。

当 Redis 主服务器发生故障时,Redis 哨兵会自动将从服务器提升为新的主服务器,但是如果有多个从服务器同时请求成为主服务器,那么 Redis 哨兵需要选择一个从服务器作为新的主服务器,这时就需要使用 tiebreaker 配置项来指定选择规则。

如果使用redis哨兵集群,强烈推荐设置一个可靠的实例作为tiebreaker的值。

PoolSize

null || number (4<PoolSize<200)

是否使用Redis连接池并设置连接池大小。