欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

WSO2ESB5.0.0集群配置

时间:2023-05-22
WSO2 ESB 5.0.0 集群配置

一、Worker / Manager 分离的集群部署模式二、配置负载均衡器

1、Nginx 安装

Nginx 注意事项 2、Nginx 配置3、创建 ssl 证书 三、本地 SVN 服务器配置四、配置管理节点

1、下载 WSO2 ESB2、设置集群配置3、配置 HostName4、配置基于 SVN 的部署同步5、配置端口偏移6、将主机名映射到 IP7、仅允许通过负载均衡器访问管理控制台 五、配置工作节点

1、设置集群配置2、配置 carbon.xml3、配置基于 SVN 的部署同步4、指定端口偏移6、创建第二个工作节点 六、测试集群

1、启动管理节点2、启动工作节点3、测试 一、Worker / Manager 分离的集群部署模式

在此模式中,有三个 WSO2 ESB 节点:1 个节点充当管理节点,2 个节点充当工作节点,以实现高可用性和服务请求。 在此模式中,我们允许通过外部负载均衡器访问管理控制台。 此外,服务请求通过此负载均衡器定向到工作节点。 下图描述了此集群部署场景将遵循的示例模式。

以此模式配置WSO2集群配置时,请在配置文件 axis2.xml 中使用特定 IP 地址而不是 localhost 或主机名。

在这里,我们使用三个节点作为知名成员,一个是管理节点,另外两个是工作节点。 始终建议使用至少两个知名成员,以防止在某个知名成员关闭时重新启动集群中的所有节点。

二、配置负载均衡器

负载均衡器自动在多个 WSO2 产品实例之间分配传入流量。它能够在集群中实现更高级别的容错,并提供分配流量所需的负载平衡。

本实例用了 3 台虚拟机,这里 Nginx 和管理节点放在同一台虚拟机。

1、Nginx 安装

关闭虚拟机防火墙
CentOS 7.0 默认使用的是 firewall 作为防火墙
查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

Nginx 安装教程见:CentOS7安装Nginx

Nginx 注意事项

本博客的配置步骤是在假设该 ESB 集群的负载均衡器使用公开默认的 8000 和 8043 端口的情况下编写的。

如果使用域名,可以利用 80 和 443 端口做代理。

请注意以下几点:

如上面的部署模式所示,负载均衡器端口是 HTTP 8000 和 HTTPS 8043。使用 http://192.168.1.128:8000/service 通过 HTTP 8000 端口将 HTTP 请求定向到工作节点。使用 https://192.168.1.128:8043/service 通过 HTTPS 8043 端口将 HTTPS 请求定向到工作节点。通过 HTTPS 8443 端口以 https://192.168.1.128:8443/carbon 身份访问管理控制台在 WSO2 ESB 集群中,工作节点在 PassThrough 传输端口(8280 和 8243)上处理服务请求,并且可以使用 HTTPS 8443 端口访问管理控制台。 2、Nginx 配置

拦截管理节点 8000 端口请求并转发到 129/130 两台机器的 8280 端口的 WSO2 ESB

esb.http.conf

upstream worker_node {server 192.168.1.129:8280;server 192.168.1.130:8280;} server {listen 8000;server_name localhost;location / {proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_read_timeout 5m;proxy_send_timeout 5m;proxy_pass http://worker_node;}}

拦截管理节点 8043 端口请求并转发到 129/130 两台机器的 8243 端口的 WSO2 ESB
esb.https.conf

upstream ssl_worker_node { server 192.168.1.129:8243; server 192.168.1.130:8243; } server {listen 8043; server_name localhost; ssl on; ssl_certificate /usr/local/nginx/ssl/wrk.crt; ssl_certificate_key /usr/local/nginx/ssl/wrk.key; location / {proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_read_timeout 5m;proxy_send_timeout 5m; proxy_pass https://ssl_worker_node; }}

拦截管理节点 8443 端口请求并转发到管理节点,通过 9443 端口访问管理控制台
mgt.esb.https.conf

server { listen 8443; server_name localhost; ssl on; ssl_certificate /usr/local/nginx/ssl/wrk.crt; ssl_certificate_key /usr/local/nginx/ssl/wrk.key; location / {proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_read_timeout 5m;proxy_send_timeout 5m;proxy_pass https://192.168.1.128:9443/;}error_log /usr/local/nginx/logs/mgt-error.log ;access_log /usr/local/nginx/logs/mgt-access.log;}

3、创建 ssl 证书

cd /usr/local/nginxmkdir sslcd sslopenssl genrsa -des3 -out wrk.key 1024openssl req -new -key wrk.key -out wrk.csrcp wrk.key wrk.key.orgopenssl rsa -in wrk.key.org -out wrk.keyopenssl x509 -req -days 365 -in wrk.csr -signkey wrk.key -out wrk.crt

三、本地 SVN 服务器配置

Linux 配置 SVN 服务器

四、配置管理节点 1、下载 WSO2 ESB

下载并解压缩 WSO2 ESB 二进制发行版。将提取的目录为

2、设置集群配置

编辑/repository/conf/axis2/axis2.xml文件如下。

为此节点启用集群:

将成员资格方案设置 wka 为启用众所周知的地址注册方法(该节点向我们稍后定义的 WKA 成员发送集群启动消息)。

wka

指定此节点将加入的集群的名称。

wso2.esb.domain

指定用于传送集群消息的主机的 IP 地址(不是 localhost 或主机名)。

192.168.1.128

指定用于传送集群消息的端口。此端口号不受/repository/conf/carbon.xml中指定的端口偏移值的影响。如果此端口号已分配给另一台服务器,则集群框架会自动增加此端口号。但是,如果两台服务器在同一台机器上运行,必须确保为每台服务器设置一个唯一的端口。

4100

指定知名成员。
在以下示例中,知名成员是工作程序节点。这里的hostName值是主机的 IP 地址。WKA 工作节点的port值必须与其相同 localMemberPort (在本例中为 4200)。虽然此示例仅表示一个知名成员,但建议在此至少添加两个知名成员。这样做是为了确保集群具有高可用性。

192.168.1.1284100 192.168.1.1294101 192.168.1.1304102

更改以下集群属性。

3、配置 HostName

编辑 /repository/conf/carbon.xml

192.168.1.128192.168.1.128

4、配置基于 SVN 的部署同步

启用基于 SVN 的部署同步,并将 AutoCommit 属性标记为 true。 为此,请编辑 /repository/conf/carbon.xml文件,如下所示。

truetruetruesvnsvn://192.168.1.130/wso2wso2123456true

WSO2 配置 SVN: Configuring+SVN-based+Deployment+Synchronizer

5、配置端口偏移

/repository/conf/carbon.xml文件中,可以指定端口偏移值。仅适用于在同一服务器上托管多个 WSO2 产品的情况。

... 0 ...

6、将主机名映射到 IP

如果需要,可以将以下主机条目添加到 DNS 或集群所有节点中的 “/etc/hosts” 文件(在 Linux 中)。 可以映射数据库服务器的 IP 地址。 本例中使用 MySQL 作为数据库服务器,所以 是数据库服务器的实际 IP 地址。

carbondb.mysql-wso2.com

7、仅允许通过负载均衡器访问管理控制台

如果需要,可以通过编辑 /repository/conf/tomcat/catalina-server.xml文件,配置 HTTP/HTTPS 代理端口以通过负载均衡器进行通信,如下所示。

五、配置工作节点 1、设置集群配置

编辑 /repository/conf/axis2/axis2.xml文件如下。

为此节点启用集群。

将成员资格方案设置 wka 为启用众所周知的地址注册方法(此节点将向我们稍后定义的 WKA 成员发送集群启动消息)。

wka

指定此节点将加入的集群的名称。

wso2.esb.domain

指定用于传送集群消息的主机的 IP 地址(不是 localhost 或主机名)。

192.168.1.129

指定用于传送集群消息的端口。如果此节点与管理节点或其他工作节点位于同一台服务器上,请将其设置为唯一值,例如工作节点 1 和 2 为 4000 和 4001。此端口号不受 中端口偏移量的影响 carbon.xml。如果这个端口号已经分配给另一个服务器,集群框架会自动增加这个端口号。

4101

通过在元素 内添加以下属性,将子域定义为工作者 :

hostName通过提供和 localMemberPort 值来指定知名成员。这里的hostName值是主机的 IP 地址。
在以下示例中,知名成员是管理器节点。定义管理器节点很有用,因为 部署同步器需要它 以有效的方式运行。部署同步器使用此配置来识别管理器并跨集群的节点同步部署工件。

192.168.1.1284100 192.168.1.1294101 192.168.1.1304102

2、配置 carbon.xml

配置/repository/conf/carbon.xml文件以使集群配置与产品相匹配。

配置 HostName。编辑/repository/conf/carbon.xml文件。

192.168.1.129192.168.1.128

3、配置基于 SVN 的部署同步

启用基于 SVN 的部署同步,并将 AutoCommit 属性标记为 false。 为此,请编辑 /repository/conf/carbon.xml文件,如下所示。

true false true svn svn://192.168.1.130/wso2 wso2 123456 true

4、指定端口偏移

/repository/conf/carbon.xml文件中,可以指定端口偏移值。仅适用于在同一服务器上托管多个 WSO2 产品的情况。

... 0 ...

6、创建第二个工作节点

通过刚刚配置为工作程序节点的 WSO2 产品的副本来创建第二个工作程序节点,并在 /repository/conf/axis2/axis2.xml文件中更改以下内容。

192.168.1.1304102

配置 HostName。编辑/repository/conf/carbon.xml文件。

192.168.1.130192.168.1.128

六、测试集群 1、启动管理节点

./wso2server.sh -Dsetup

2、启动工作节点

./wso2server.sh -DworkerNode= true

3、测试

启动所有节点,工作节点启动后,管理节点的日志可以看到成员加入的日志消息。

进入管理控制台:https://192.168.1.128:8443
放一个碳应用上去


postman 测试,请求 8000 端口,nginx 进行负载均衡


SVN 文件

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。