1

我正在安装一个 WSO2 EI 两节点集群,我对必须创建的数据库数量有些怀疑。

我将尽我所能解释我的情况:我正在使用WSO2 EI 6.5.0

我有两个节点集群。每个节点都包含ESBMB配置文件。我将在Microsoft SQL Server集群数据库上创建所需的数据库。

所以我有这种情况:

节点 1:ESB 和 MB

节点 2:ESB 和 MB

阅读官方文档:

集群 WSO2 ESB 配置文件: https ://docs.wso2.com/display/EI650/Clustered+Deployment

集群 WSO2 MB 配置文件: https ://docs.wso2.com/display/EI650/Clustering+the+Message+Broker+Profile

我可以找到 ESB 和 MB 配置文件所需的数据库信息。特别是ESB配置文件需要创建这 4 个数据库:

  • WSO2_USER_DB: JDBC 用户存储和授权管理器。
  • REGISTRY_DB:用于配置和治理注册表安装在产品节点中的共享数据库。
  • REGISTRY_LOCAL1:节点 1 中的本地注册表空间。
  • REGISTRY_LOCAL2:节点 2 中的本地注册表空间。

MB配置文件需要以下 5 个数据库:

  • WSO2_USER_DB: JDBC 用户存储和授权管理器。
  • REGISTRY_DB:用于配置和治理注册表安装在产品节点中的共享数据库。
  • REGISTRY_LOCAL1:节点 1 中的本地注册表空间。
  • REGISTRY_LOCAL2:节点 2 中的本地注册表空间。
  • MB_DB:存储特定于消息代理配置文件的实例数据。

因此, ESBMB配置文件之间的前 4 个数据库似乎是相同的,并且MB配置文件使用了一个名为MB_DB的成瘾数据库。

我的疑问是:在像我这样的情况下(2 个节点集群,同时包含ESBMB配置文件)我必须创建多少个数据库?

我最初的想法是 5 个数据库,因为我认为前 4 个数据库在ESBMB配置文件之间共享,但现在我有以下疑问:理论上(如果我的断言错误,请纠正我)ESB 和 MB 都可以使用相同的用户数据库和注册表,但检查默认的H2设置,我们有:

  • ESB配置文件使用一个位于/usr/lib/wso2/wso2ei/6.5.0/repository/database/中的数据库
  • MB配置文件使用一个位于/usr/lib/wso2/wso2ei/6.5.0/wso2/broker/repository/database/中的数据库

所以理论上这应该意味着最好不要在配置文件/产品之间混合数据库。

那我到底应该怎么做?我必须创建多少和哪些数据库?

我现在在想,也许我必须使用前缀完全分离ESBMB配置文件数据库,如下所示:

ESB配置文件数据库:我必须创建这 4 个数据库:

  • ESB_WSO2_USER_DB
  • ESB_REGISTRY_DB
  • ESB_REGISTRY_LOCAL1
  • ESB_REGISTRY_LOCAL2

MB配置文件数据库:我必须创建这5个数据库;

  • MB_WSO2_USER_DB
  • MB_REGISTRY_DB
  • MB_REGISTRY_LOCAL1
  • MB_REGISTRY_LOCAL2
  • WSO2_MB(特定于MB配置文件,所以我没有使用冗余后缀)

这会是一个好的解决方案吗?但是通过这种方式,我将拥有完全独立的数据库,而不是为用户和注册表共享信息。

在像我这样的两个节点集群的情况下,最佳实践是什么?

谢谢

4

1 回答 1

1

正如您所说,保留单独的数据库很好。通常所做的是创建带有您提到的前缀的数据库。

但是,假设只有一组用户同时访问 ESB 和 MB,那么您可以继续并从两个产品中指向一个 userdb(意味着所有四个实例都在 2 个节点中运行)。

关于注册表数据库,假设您有一个需要从 ESB 和 MB 访问的配置文件,那么您必须共享一个 registry_db(并且还必须遵循正确的注册表挂载/参见文档)。如果没有这种情况,最好保留单独的数据库。

底线:只要 ESB 和 MB 内部没有任何共享内容,最好维护一组单独的数据库。您只需要在同一产品的实例之间进行集群和共享数据库。

干杯!

于 2019-11-27T02:09:12.673 回答