【问题标题】:WSO2 DAS + Clustering APIM with mysqlWSO2 DAS + 使用 mysql 的集群 APIM
【发布时间】:2017-02-04 00:05:19
【问题描述】:
  1. 我的 APIM 版本是 1.10.0,DAS 是 3.0.1。

  2. 起初,我没有使用 mysql 部署 Clustering APIM + DAS。统计数据显示良好。

  3. 然后,我将APIM集群成发布者、存储、密钥管理器和网关。配置APIM和DAS命令this article,当我调用一个api时,网关节点显示错误

[2016-10-13 11:13:54,775] ERROR - APIMgtUsageHandler Cannot publish event. null
java.lang.NullPointerException
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher.publishEvent(APIMgtUsageDataBridgeDataPublisher.java:124)
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler.handleRequest(APIMgtUsageHandler.java:169)
        at org.apache.synapse.rest.API.process(API.java:322)
        at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86)
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:65)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
        at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)
        at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:149)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
[2016-10-13 11:13:54,807] ERROR - APIMgtResponseHandler Cannot publish response event. null
java.lang.NullPointerException
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher.publishEvent(APIMgtUsageDataBridgeDataPublisher.java:140)
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtResponseHandler.mediate(APIMgtResponseHandler.java:211)
        at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:84)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
        at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:155)
        at org.apache.synapse.rest.Resource.process(Resource.java:297)
        at org.apache.synapse.rest.API.process(API.java:335)
        at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86)
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:251)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
  1. 然后我改变了DAS配置的方式。在this blog之后,我配置了所有的api-manager.xml,没有错误也没有stats。并存储节点显示信息:
[2016-10-18 11:31:39,131]  INFO - ReceiverGroup Resending the failed published data...
[2016-10-18 11:31:44,134]  WARN - AccessConfiguration Error loading properties from file: access-log.properties
[2016-10-18 11:31:44,207]  INFO - TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout
  1. 我用谷歌搜索原因,在wso2 jira,他们说这不是错误。

但我无法等待数小时的统计数据。我是否配置有问题?

警戒。

【问题讨论】:

  • 您可以通过登录DAS管理控制台浏览DAS表吗?您可以在数据浏览器菜单中浏览表 org.wso2.apimgt.statistics.request。还要确保您已在 /repository/deployment/server/carbonapps/dir 中部署 Capp
  • 数据资源管理器菜单下的org.wso2.apimgt.statistics.request表中没有数据,除了ORG_WSO2_APIMGT_STATISTICS_WORKFLOW表有一些数据。在/repository/deployment/server/carbonapps/是 API_Manager_Analytics_RDBMS.car。没有分布式 APIM,我可以从发布者和商店获取统计信息。分发时,没有统计信息

标签: wso2 wso2-am wso2-das


【解决方案1】:

似乎在商店节点中,数据发布已启用并正在工作。但是网关节点数据没有发布。请尝试验证网关节点配置。还要检查网关节点是否可以访问 DAS 节点。

【讨论】:

  • 谢谢,ruks。 store 和 gateway 节点的 api-manager.xml 上的配置是一样的,还有其他配置吗?如何检查网关节点是否可以访问DAS节点?在我的步骤2中,我可以证明DAS可用吗?或者DAS接收者没有收到消息?
  • 我在 DAS 中使用 NO 分布式 APIM,在调用 api 后,有 stats。然后我将 APIM 更改为 DISTRIBUTED ,然后我调用另一个 api ,stats 显示 SubscriberCount 但没有 Hits 。
  • 但是DAS管理控制台在Data explorer菜单中,找不到新的invoke api DATA。是网关不能发送还是DAS不能接收?如何解决?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多