WSO2 MI 4.2.0 集群部署

WSO2   2025-04-19 08:43   426   0  

一、部署模式

此部署场景是一个双节点Micro Integrator部署。也就是说,配置了两个Micro Integrator节点,以提供高可用性和可扩展性的请求。部署中的产品节点由外部第三方负载均衡器引导,该均衡器在循环的基础上将请求路由到这两个节点。
WSO2 MI 4.2.0 集群部署.jpg

二、主机名

打开每个服务器实例的 deployment.toml 文件(存储在/conf 文件夹中)并更新主机名。

[server]
hostname = "localhost"

image.png
image.png

三、集群协调

部署中的大多数集成工件都是无状态的,当有多个服务器实例在运行时,实际上不需要协调。但是,当部署在多个服务器实例中时,以下工件集需要它们之间的协调。

  • 计划的任务

  • 消息处理器

  • 轮询入站端点

  • 基于事件的入站端点

1、cluster 数据库

WSO2 MI 4.2.0 配置 MySQL
当集群中的节点需要相互通信时,Micro Integrator 在服务器节点之间使用基于 RDBMS 的协调。也就是说,所有节点都通过数据库进行通信。因此,需要有一个数据库来实现工件之间的协调。
基于RDBMS的协调需要同步每个节点的系统时间。不同步它们将导致意外的行为。请参阅 EI_1758 了解其中一个可能的问题。
image.png

2、节点ID

节点ID是一个唯一的标识符,用于标识集群中的节点。这在某些请求需要根据节点ID路由到服务器节点的情况下很有用。例如,计划任务应该只在特定节点中运行。

[cluster_config]
node_id = "node-1"

如果使用多种方法指定节点ID,则将按给定顺序提取适用的节点ID。
image.png
image.png

3、任务解析程序

  当在集成部署中安排了任务时,每个任务应该只在集群的一个节点中运行。服务器节点中的任务解析程序配置指定将任务分配给服务器节点的逻辑。
  • 默认冲突解决程序

  • 默认情况下,任务是通过从群集中可用的节点列表中选择一个随机节点来解决的。所有任务都解析到选定的节点。只有当第一个节点离开集群时,任务才会被解析到其他节点。

  • 当希望所有任务在给定时间点在单个节点上运行时,此解析器非常有用。

  • 循环分解器

  • 这个类以循环方式在节点之间分配任务。除此之外,它还接受一个名为 taskservercount 的参数,该参数指定在启动任务解析过程之前应该存在于集群中的节点数。

  • 此解析器可用于希望在集群中所有可用节点之间平均分配任务的场景。

  • taskservercount 在每次解析任务时应用。也就是说,当一个节点离开集群时,只有在满足taskservercount 的情况下,任务才会被解析(分配)到另一个节点。

[task_handling]
resolver_class = "org.wso2.micro.integrator.ntask.coordination.task.resolver.RoundRobinResolver"

[[task_resolver]]
task_server_count = "3"
  • 任务节点解析程序

  • 此类将以循环方式将任务解析为预定义的一组节点(任务节点)。tasknode 需要定义为 resolverclass 属性。

  • 这个解析器可以用于只想在集群的特定节点上运行任务的场景。

[task_handling]
resolver_class= "org.wso2.micro.integrator.ntask.coordination.task.resolver.TaskNodeResolver"

[[task_resolver]]
task_nodes = "node-1,node-2"

4、高级参数

resolvingperiod和resolvingfrequency属性默认设置如下。不建议更改这些默认值。

[task_handling]
resolving_period = "6"
resolving_frequency = "3"

参数

默认值

可能值

描述

resolving_period

2

任何大于0的整数。

以秒为单位的周期。解决协调数据库中未分配任务的时间间隔。

resolving_frequency

5

任何大于0的整数。

会定期清理协调数据库以删除无效任务。此参数指定解决未分配任务的频率(每个清洁事件)。

四、部署同步

当有一个集群时,部署在每个服务器节点中的集成工件需要是相同的。这可以通过同步每个服务器的部署目录来实现。也就是说,每个服务器的文件夹都需要共享/repository/deployment/server 目录。
根据集群中(工件)的预期变化率,选择以下方法之一:

  • 对于高更改率(即,如果更改频繁发生),请使用网络文件共享(NFS)。

  • 对于中等速率的更改,请使用远程同步(Rsync)。

  • 对于低变化率(即,如果每周发生一次变化):

  • 使用配置管理系统来处理工件。

  • 使用其他部署选项(例如,Puppet、Chef等)。

请确保选择适合的生产环境的部署同步方法。

1、使用网络文件共享(NFS)

参考:使用网络文件共享 (NFS)

2、使用远程同步(Rsync)

如果无法维护共享文件系统,可以使用Rsync同步内容。Rsync工具(是一种文件复制工具)是在所有集群节点上同步工件的另一种常见方法。因此,可以首先在集群的一个节点中部署工件,然后使用Rsync将这些工件复制到其他节点。
参考:Rsync + Inotify 实现实时同步

①、在 node-1 和 node-2 安装rsync和sshpass

yum install -y rsync sshpass
#给用户设置密码
passwd wso2

先成功登录一次remotehost,之后就可以使用sshpass了。
特别提醒:如果今后远程主机重装系统,或者换了机器,一定要删除本地~/.ssh/known_host,否则是会无法登录的。

# node-1
su wso2
rm -rf ~/.ssh/known_host
ssh wso2@192.168.100.149

# node-2
su wso2
rm -rf ~/.ssh/known_host
ssh wso2@192.168.100.151

image.png
image.png

②、在 node-1 和 node-2 安装 inotify-tools

yum install -y autoconf automake libtool make
mkdir -p /app
cd /app
wget https://github.com/inotify-tools/inotify-tools/archive/refs/tags/3.22.6.0.tar.gz
tar -zxvf inotify-tools-3.22.6.0.tar.gz
mkdir -p /app/inotify-tools
cd /app/inotify-tools-3.22.6.0
./autogen.sh && ./configure --prefix=/app/inotify-tools && make && make install

③、node-1 同步到 node-2

a、部署同步

cd /app
touch rsync_wso2mi_server_inotify.sh && chmod +x rsync_wso2mi_server_inotify.sh
vim rsync_wso2mi_server_inotify.sh
#!/bin/bash
# 需要同步的本地目录
SRCDIR=/usr/local/wso2mi/wso2mi-4.2.0/repository/deployment/server
USER=wso2
PASSWORD=CWCcwy12
IP=192.168.100.149
# 被同步的节点的目录
DESTDIR=/app/wso2mi-4.2.0/repository/deployment/server
su - $USER << EOF
touch /tmp/rsync_server.log
# 格式:inotifywait -mrq -e 监控动作 1,监控动作 2 /监控目录 &
/app/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $SRCDIR | while read file
do
  # 上行同步
  sshpass -p $PASSWORD rsync -avpgorl --progress --delete-before -e 'ssh -p 22' $SRCDIR/ $USER@$IP:$DESTDIR 
  echo " \${file} was rsynced" >> /tmp/rsync_server.log 2>&1
  echo -e "`date ` \e[32m rsynced done! \e[0m"
done
EOF

b、注册表同步

cd /app
touch rsync_wso2mi_registry_inotify.sh && chmod +x rsync_wso2mi_registry_inotify.sh
vim rsync_wso2mi_registry_inotify.sh
#!/bin/bash
# 需要同步的本地目录
SRCDIR=/usr/local/wso2mi/wso2mi-4.2.0/registry
USER=wso2
PASSWORD=CWCcwy12
IP=192.168.100.149
# 被同步的节点的目录
DESTDIR=/app/wso2mi-4.2.0/registry
su - $USER << EOF
touch /tmp/rsync_registry.log
# 格式:inotifywait -mrq -e 监控动作 1,监控动作 2 /监控目录 &
/app/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $SRCDIR | while read file
do
  # 上行同步
  sshpass -p $PASSWORD rsync -avpgorl --progress --delete-before -e 'ssh -p 22' $SRCDIR/ $USER@$IP:$DESTDIR 
  echo " \${file} was rsynced" >> /tmp/rsync_registry.log 2>&1
  echo -e "`date ` \e[32m rsynced done! \e[0m"
done
EOF
nohup /app/rsync_wso2mi_server_inotify.sh >> /app/rsync_wso2mi_server_inotify.log 2>&1 &
nohup /app/rsync_wso2mi_registry_inotify.sh >> /app/rsync_wso2mi_registry_inotify.log 2>&1 &

③、node-2 同步到 node-1

a、部署同步

cd /app
touch rsync_wso2mi_server_inotify.sh && chmod +x rsync_wso2mi_server_inotify.sh
vim rsync_wso2mi_server_inotify.sh
#!/bin/bash
# 需要同步的本地目录
SRCDIR=/app/wso2mi-4.2.0/repository/deployment/server
USER=wso2
PASSWORD=CWCcwy12
IP=192.168.100.151
# 被同步的节点的目录
DESTDIR=/usr/local/wso2mi/wso2mi-4.2.0/repository/deployment/server
su - $USER << EOF
touch /tmp/rsync_server.log
# 格式:inotifywait -mrq -e 监控动作 1,监控动作 2 /监控目录 &
/app/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $SRCDIR | while read file
do
  # 上行同步
  sshpass -p $PASSWORD rsync -avpgorl --progress --delete-before -e 'ssh -p 22' $SRCDIR/ $USER@$IP:$DESTDIR 
  echo " \${file} was rsynced" >> /tmp/rsync_server.log 2>&1
  echo -e "`date ` \e[32m rsynced done! \e[0m"
done
EOF

b、注册表同步

cd /app
touch rsync_wso2mi_registry_inotify.sh && chmod +x rsync_wso2mi_registry_inotify.sh
vim rsync_wso2mi_registry_inotify.sh
#!/bin/bash
# 需要同步的本地目录
SRCDIR=/app/wso2mi-4.2.0/registry
USER=wso2
PASSWORD=CWCcwy12
IP=192.168.100.151
# 被同步的节点的目录
DESTDIR=/usr/local/wso2mi/wso2mi-4.2.0/registry
su - $USER << EOF
touch /tmp/rsync_registry.log
# 格式:inotifywait -mrq -e 监控动作 1,监控动作 2 /监控目录 &
/app/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $SRCDIR | while read file
do
  # 上行同步
  sshpass -p $PASSWORD rsync -avpgorl --progress --delete-before -e 'ssh -p 22' $SRCDIR/ $USER@$IP:$DESTDIR 
  echo " \${file} was rsynced" >> /tmp/rsync_registry.log 2>&1
  echo -e "`date ` \e[32m rsynced done! \e[0m"
done
EOF
nohup /app/rsync_wso2mi_server_inotify.sh >> /app/rsync_wso2mi_server_inotify.log 2>&1 &
nohup /app/rsync_wso2mi_registry_inotify.sh >> /app/rsync_wso2mi_registry_inotify.log 2>&1 &

五、注册表同步(共享)

只有当部署中有消息处理器时,才需要注册表共享。

共享注册表维护消息处理器工件的状态(活动/非活动)。这样可以确保集群的所有Micro Integrator节点中的Message Processor都保持相同的状态。集群中每个节点的/注册表文件夹应该相互共享。

1、配置基于文件的注册表

WSO2 Micro Integrator附带了一个基于文件系统的注册表。默认情况下,文件夹充当存储注册表工件的注册表。此根注册表文件夹由以下子注册表文件夹组成:MI_HOME/registry/

  • Local

  • Config

  • Governance

工件可以根据需求和用例存储在上述任何文件夹中。目录结构被维护为与以前的EI版本具有向后兼容性。
如果要更改注册表文件夹的默认位置,请取消注释并更改文件中的以下配置:MI_HOME/repository/deployment/server/synapse configs/default/registry.xml

<registry xmlns="http://ws.apache.org/ns/synapse" provider="org.wso2.micro.integrator.registry.MicroIntegratorRegistry">
    <parameter name="cachableDuration">15000</parameter>
    <!--
 Uncomment below parameters (ConfigRegRoot, GovRegRoot, LocalRegRoot) to configure registry root paths
 Default : <MI_HOME>/registry/{governance | config | local}
 Example : <parameter name="GovRegRoot">file:///Users/JohnDoe/registry/governance</parameter>
    -->
    <!--
    <parameter name="ConfigRegRoot">{Root directory path for configuration Registry}</parameter>
    <parameter name="GovRegRoot">{Root directory path for governance Registry}</parameter>
    <parameter name="LocalRegRoot">{Root directory path for local Registry}</parameter>
    -->
</registry>

2、注册表同步

参考上节部署同步,共享/registry 目录。

六、负载均衡

当进行集群部署时,需要设置一个负载均衡器来管理传入流量。负载均衡器会自动将传入流量分布在集群中的多个节点上,从而在部署中实现更好的容错性。

1、配置 nginx

touch /etc/nginx/conf.d/ei.http.conf
touch /etc/nginx/conf.d/ei.https.conf
touch /etc/nginx/conf.d/ei.https.dashboard.conf
upstream wso2.ei.com {
    server 192.168.100.149:8290;
    server 192.168.100.151:8290;
}
server {
    listen 8080;
    server_name ei.wso2.com;
    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://wso2.ei.com;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
    }
}
upstream ssl.wso2.ei.com {
    server 192.168.100.149:8243;
    server 192.168.100.151:8243;
    ip_hash;
}  
server {
    listen 8443;
    server_name ei.wso2.com;
    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.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.wso2.ei.com;  
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
    }
}
upstream ssl.wso2.ei.dashboard.com {
    server 192.168.100.151:9743;
    ip_hash;
}  
server {
    listen 8443;
    server_name ei.wso2.com;
    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.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.wso2.ei.dashboard.com;  
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
    }
}

2、签发本地 ssl 证书

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

image.png

七、部署强化

在部署Micro Integrator之前,请确保已考虑到各自的安全强化因素(例如,更改和加密默认密码、配置JVM安全性等)。有关更多信息,请参阅 生产部署指南

八、测试集群

1、node-1 deployment.toml

[server]
hostname = "192.168.100.151"
# offset  = 10

[cluster_config]
node_id = "node-1"

#[user_store]
#type = "read_only_ldap"

[keystore.primary]
file_name = "repository/resources/security/wso2carbon.jks"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"

[truststore]
file_name = "repository/resources/security/client-truststore.jks"
password = "wso2carbon"
alias = "symmetric.key.value"
algorithm = "AES"

# 基本健康检查
[readiness_probe]
protocols = "http https"

# 禁用基于文件的用户存储
[internal_apis.file_user_store]
enable = false

# 配置 RDBMS 用户存储
[user_store]
class = "org.wso2.micro.integrator.security.user.core.jdbc.JDBCUserStoreManager"
type = "database"
# 仅当您希望禁用对用户存储的写入访问时,才添加以下参数。
read_only = false

# 集群数据库
[[datasource]]
id = "WSO2_COORDINATION_DB"
url= "jdbc:mysql://192.168.100.151:3306/wso2mi_clusterdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=GMT%2B8"
username="wxhntmy"
password="CWCcwy12!@"
driver="com.mysql.cj.jdbc.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true

# 用户存储数据库
[[datasource]]
id = "WSO2CarbonDB"
url= "jdbc:mysql://192.168.100.151:3306/wso2mi_userdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=GMT%2B8"
username="wxhntmy"
password="CWCcwy12!@"
driver="com.mysql.cj.jdbc.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true

# 事务计数数据库
[[datasource]]
id = "WSO2_TRANSACTION_DB"
url= "jdbc:mysql://192.168.100.151:3306/wso2mi_transactiondb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=GMT%2B8"
username="wxhntmy"
password="CWCcwy12!@"
driver="com.mysql.cj.jdbc.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true

[transaction_counter]
enable = true
data_source = "WSO2_TRANSACTION_DB"
update_interval = 2

## Following are set of example configs. Please refer docs for complete set of configurations.

# [transport.http]
# socket_timeout = 180000   # timeout in milliseconds
# disable_connection_keepalive = false
# connection_timeout = 90000 # in milliseconds

# [transport.jms]
# sender_enable = true
# listener_enable = true

# [[transport.jms.sender]]
# name = "myQueueSender"
# parameter.initial_naming_factory = "org.apache.activemq.jndi.ActiveMQInitialContextFactory"
# parameter.provider_url = "tcp://192.168.100.151:61616"
# parameter.connection_factory_name = "QueueConnectionFactory"
# parameter.connection_factory_type = "queue"
# parameter.cache_level = "producer"


#[[transport.jms.listener]]
# name = "myQueueConnectionFactory"
# parameter.initial_naming_factory = "org.apache.activemq.jndi.ActiveMQInitialContextFactory"
# parameter.provider_url = "tcp://192.168.100.151:61616"
# parameter.connection_factory_name = "QueueConnectionFactory"
# parameter.connection_factory_type = "queue"

# [transport.jndi.connection_factories]
# 'connectionfactory.QueueConnectionFactory' = "amqp://admin:admin@clientID/carbon?brokerlist='tcp://192.168.100.151:5675'"
# 'connectionfactory.TopicConnectionFactory' = "amqp://admin:admin@clientID/carbon?brokerlist='tcp://192.168.100.151:5675'"

# [transport.jndi.queue]
# jndiNameOfQueue = "physicalNameOfQueue"

# [transport.jndi.topic]
# jndiNameOfTopic = "physicalNameOfTopic"

[transport.rabbitmq]
sender_enable = true
listener_enable = true

[[transport.rabbitmq.sender]]
name = "AMQPConnectionFactory"
parameter.hostname = "192.168.100.151"
parameter.port = 5672
parameter.username = "guest"
parameter.password = "guest"

# [[transport.rabbitmq.listener]]
# name = "AMQPConnectionFactory"
# parameter.hostname = "192.168.100.151"
# parameter.port = 5672
# parameter.username = "guest"
# parameter.password = "guest"

# [[transport.phase_order]]
# Entire phase_order list can be found under 'Axis2 Phases' in <MI_HOME>/repository/resources/conf/deployment-full.toml.
# If an Axis2 phase needs to added/removed, include all of the
# Inflow, OutFlow & OutFaultFlow phases found in the deployment-full.toml and change them as needed.

# [system.parameter]
# 'key' = "value"

# [[datasource]]
# id = "WSO2CarbonDB"  # "WSO2_COORDINATION_DB"
# url = "jdbc:mysql://192.168.100.151:3306/integratordb"
# username = "root"
# password = "root"
# driver = "com.mysql.cj.jdbc.Driver"

# [management_api]
# protocols = "http"

# [[internal_apis.users]]
# user.name = "user-1"
# user.password = "pwd-1"

# [transaction_counter]
# enable = true
# data_source = "WSO2CarbonDB"
# update_interval = 2

# [mediation]
# synapse.global_timeout_interval = "120000"  # interval in milliseconds

# [secrets]
# secret_key = "[secret value]"

# [[service_catalog]]
# apim_host = "https://192.168.100.151:9443"
# enable = true
# username = "admin"
# password = "admin"

[dashboard_config]
dashboard_url = "https://192.168.100.151:9743/dashboard/api/"

2、node-2 deployment.toml

[server]
hostname = "192.168.100.149"
# offset  = 10

[cluster_config]
node_id = "node-2"

#[user_store]
#type = "read_only_ldap"

[keystore.primary]
file_name = "repository/resources/security/wso2carbon.jks"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"

[truststore]
file_name = "repository/resources/security/client-truststore.jks"
password = "wso2carbon"
alias = "symmetric.key.value"
algorithm = "AES"

# 基本健康检查
[readiness_probe]
protocols = "http https"

# 禁用基于文件的用户存储
[internal_apis.file_user_store]
enable = false

# 配置 RDBMS 用户存储
[user_store]
class = "org.wso2.micro.integrator.security.user.core.jdbc.JDBCUserStoreManager"
type = "database"
# 仅当您希望禁用对用户存储的写入访问时,才添加以下参数。
read_only = false

# 集群数据库
[[datasource]]
id = "WSO2_COORDINATION_DB"
url= "jdbc:mysql://192.168.100.151:3306/wso2mi_clusterdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=GMT%2B8"
username="wxhntmy"
password="CWCcwy12!@"
driver="com.mysql.cj.jdbc.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true

# 用户存储数据库
[[datasource]]
id = "WSO2CarbonDB"
url= "jdbc:mysql://192.168.100.151:3306/wso2mi_userdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=GMT%2B8"
username="wxhntmy"
password="CWCcwy12!@"
driver="com.mysql.cj.jdbc.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true

# 事务计数数据库
[[datasource]]
id = "WSO2_TRANSACTION_DB"
url= "jdbc:mysql://192.168.100.151:3306/wso2mi_transactiondb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=GMT%2B8"
username="wxhntmy"
password="CWCcwy12!@"
driver="com.mysql.cj.jdbc.Driver"
pool_options.maxActive=50
pool_options.maxWait = 60000
pool_options.testOnBorrow = true

[transaction_counter]
enable = true
data_source = "WSO2_TRANSACTION_DB"
update_interval = 2

## Following are set of example configs. Please refer docs for complete set of configurations.

# [transport.http]
# socket_timeout = 180000   # timeout in milliseconds
# disable_connection_keepalive = false
# connection_timeout = 90000 # in milliseconds

# [transport.jms]
# sender_enable = true
# listener_enable = true

# [[transport.jms.sender]]
# name = "myQueueSender"
# parameter.initial_naming_factory = "org.apache.activemq.jndi.ActiveMQInitialContextFactory"
# parameter.provider_url = "tcp://192.168.100.149:61616"
# parameter.connection_factory_name = "QueueConnectionFactory"
# parameter.connection_factory_type = "queue"
# parameter.cache_level = "producer"


#[[transport.jms.listener]]
# name = "myQueueConnectionFactory"
# parameter.initial_naming_factory = "org.apache.activemq.jndi.ActiveMQInitialContextFactory"
# parameter.provider_url = "tcp://192.168.100.149:61616"
# parameter.connection_factory_name = "QueueConnectionFactory"
# parameter.connection_factory_type = "queue"

# [transport.jndi.connection_factories]
# 'connectionfactory.QueueConnectionFactory' = "amqp://admin:admin@clientID/carbon?brokerlist='tcp://192.168.100.149:5675'"
# 'connectionfactory.TopicConnectionFactory' = "amqp://admin:admin@clientID/carbon?brokerlist='tcp://192.168.100.149:5675'"

# [transport.jndi.queue]
# jndiNameOfQueue = "physicalNameOfQueue"

# [transport.jndi.topic]
# jndiNameOfTopic = "physicalNameOfTopic"

[transport.rabbitmq]
sender_enable = true
listener_enable = true

# [[transport.rabbitmq.sender]]
# name = "AMQPConnectionFactory"
# parameter.hostname = "192.168.100.149"
# parameter.port = 5672
# parameter.username = "guest"
# parameter.password = "guest"

# [[transport.rabbitmq.listener]]
# name = "AMQPConnectionFactory"
# parameter.hostname = "192.168.100.149"
# parameter.port = 5672
# parameter.username = "guest"
# parameter.password = "guest"

# [[transport.phase_order]]
# Entire phase_order list can be found under 'Axis2 Phases' in <MI_HOME>/repository/resources/conf/deployment-full.toml.
# If an Axis2 phase needs to added/removed, include all of the
# Inflow, OutFlow & OutFaultFlow phases found in the deployment-full.toml and change them as needed.

# [system.parameter]
# 'key' = "value"

# [[datasource]]
# id = "WSO2CarbonDB"  # "WSO2_COORDINATION_DB"
# url = "jdbc:mysql://192.168.100.149:3306/integratordb"
# username = "root"
# password = "root"
# driver = "com.mysql.jdbc.Driver"

# [management_api]
# protocols = "http"

# [[internal_apis.users]]
# user.name = "user-1"
# user.password = "pwd-1"

# [transaction_counter]
# enable = true
# data_source = "WSO2CarbonDB"
# update_interval = 2

# [mediation]
# synapse.global_timeout_interval = "120000"  # interval in milliseconds

# [secrets]
# secret_key = "[secret value]"

# [[service_catalog]]
# apim_host = "https://192.168.100.149:9443"
# enable = true
# username = "admin"
# password = "admin"

[dashboard_config]
dashboard_url = "https://192.168.100.151:9743/dashboard/api/"

3、dashboard

image.png

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。