我必须为WSO2 EI这样的两个节点集群创建多少个数据库以及什么数据库(每个节点包含ESB和MB配置文件)

时间:2019-11-26 10:34:35

标签: wso2 wso2esb wso2carbon wso2ei wso2mb

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

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

我有两个节点集群。每个节点均包含 ESB MB 配置文件。我将在 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配置文件所需的DB的信息。 特别是 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::存储特定于消息代理配置文件的实例数据。

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

这是我的疑问:在我所拥有的情况下(两个节点集群都包含 ESB MB 配置文件),我有多少个数据库创建吗?

我最初的想法是5个数据库,因为我认为前4个数据库在 ESB MB 配置文件之间共享,但是现在我有以下疑问:理论上(正确)如果我做的是错误的断言,则 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 /
  • 中的数据库

因此,从理论上讲,这应该意味着最好不要在配置文件/产品之间混用数据库。

那我该怎么办?我必须创建多少个数据库?

我现在正在考虑,也许我必须使用前缀完全分隔 ESB MB 配置文件数据库,如下所示:

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 个人资料,因此我没有使用多余的后缀)

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

正如您所说,可以保留单独的数据库。通常所做的就是使用您提到的前缀创建数据库。

但是,如果它只有一组将同时访问ESB和MB的用户,那么您可以继续并从这两个产品中指向单个userdb(表示在两个节点中运行的所有四个实例)。 / p>

关于注册表数据库,假设您有一个需要同时从ESB和MB访问的配置文件,那么您必须共享一个单一的registry_db(还必须遵循正确的注册表安装/请参阅文档以获取有关信息)。那)。 如果没有这种情况,最好保留单独的数据库。

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

干杯!