【问题标题】:Configuring WSO2 STATS_DB配置 WSO2 STATS_DB
【发布时间】:2016-10-17 00:29:20
【问题描述】:

我已将 API Manager 2.0.0 和 API Manager Analytics Pack 配置为使用 MySQL 数据库。
对于每个服务器,都存在一个 WSO2AM_STATS_DB。我在我的 MySQL 服务器上给出了这些不同的名称。我还将master-datasources.xml(用于APIM)和stats-datasources.xml(用于分析)中的数据源指向相关数据库。
我在它们各自的包中找不到这些数据库的任何相关架构(dbscripts)。

运行时,Analytics 数据库已填充,但 APIM 数据库未填充并引发异常。 Analytics 数据库不仅获取架构,还获取我的 API 的调用详细信息。 不过,我无法在仪表板上获取统计信息。

以前,我(无意中)将 h2-repository 统计数据库配置为两个服务器的相同(由于文件夹结构),并且能够在发布者的仪表板上获取所有统计信息。

我尝试过的其他配置: 在 MySQL 服务器上,将其指向同一个数据库(带有架构的 Analytics 数据库),但在我的仪表板上没有结果(等待一段时间后)。

【问题讨论】:

  • 我也面临同样的问题。 API 管理器未创建统计数据库。
  • @sachindhus 请参阅下面的答案。

标签: wso2 wso2carbon wso2-am wso2-das


【解决方案1】:

2 个服务器中的两个数据源 (WSO2AM_STATS_DB) 应指向同一个数据库。没有用于此的数据库脚本。表格是自动创建的。

默认情况下,在两个服务器中,Stats DB 路径是这样的。 (注../部分)

<url>jdbc:h2:../tmpStatDB/WSO2AM_STATS_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000;AUTO_SERVER=TRUE</url>

因此,如果您将两台服务器提取到this doc 中提到的同一目录,则两个数据源将指向同一个数据库(在 tmpStatDB 中),就像这样。

/parent_dir
     |__wso2am-2.0.0/
     |__wso2am-analytics-2.0.0/
     |__tmpStatDB/

所以,这里发生的情况是,wso2am-analytics 将统计数据写入共享数据库,然后 apim 读取它并在其数据库中显示数据。

【讨论】:

  • 感谢 Bhathiya...它真的很有帮助...我们使用相同的方法实现了这一点。有没有办法在不使用共享数据库的情况下实现这一点?
  • @sachindhus 有一种方法可以从 REST API 读取数据。但由于性能原因,它已从 2.0.0 中删除。因此,目前,如果没有共享数据库,就无法做到这一点。你能解释一下为什么你不能有一个共享数据库吗?
  • @Bhathiya 是的,您上面描述的情况解释了为什么我的初始 h2 配置有效(如我的问题中所述)。如果我的理解正确,从分析服务器到 API 管理器的信息传输不是通过 REST API 而是通过共享数据库?我已经看到了 DAS 的一些配置,可以通过 XML 文件中的 REST 接收信息..
  • 您可以从 DAS REST API 读取统计数据。 APIM 1.10.0 具有使用这些 REST API 读取统计数据的配置。但是 APIM 2.0.0 仪表板不再使用它们来读取统计数据。
  • 我觉得奇怪的是没有用于 stats 数据库的数据库脚本,但 the clustering guide 有以下内容:mysql&gt; source &lt;APIM_HOME&gt;/dbscripts/stat/sql/mysql.sql;。这是文档中的错误吗?或许在这方面的注释会很有用。
猜你喜欢
  • 2019-10-28
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多