【问题标题】:ERROR on API Manager 2.0.0 gateway worker on start-upAPI Manager 2.0.0 网关工作人员在启动时出错
【发布时间】:2016-11-09 22:41:16
【问题描述】:

网关工作节点在启动时会记录以下错误。

2016-08-23 12:32:42,344 [-] [Timer-5] ERROR KeyTemplateRetriever Exception when retrieving throttling data from remote endpoint
Unexpected character (<) at position 0.
    at org.json.simple.parser.Yylex.yylex(Unknown Source)
    at org.json.simple.parser.JSONParser.nextToken(Unknown Source)
    at org.json.simple.parser.JSONParser.parse(Unknown Source)
    at org.json.simple.parser.JSONParser.parse(Unknown Source)
    at org.json.simple.parser.JSONParser.parse(Unknown Source)
    at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.retrieveKeyTemplateData(KeyTemplateRetriever.java:100)
    at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.loadKeyTemplatesFromWebService(KeyTemplateRetriever.java:111)
    at org.wso2.carbon.apimgt.gateway.throttling.util.KeyTemplateRetriever.run(KeyTemplateRetriever.java:54)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

尽管网关工作节点启动时出现错误,但环境可用于成功调用示例 API。

所有 apim 节点,禁止流量管理器,但是报告这些警告

2016-08-22 16:40:56,652 [-] [Timer-5]  WARN KeyTemplateRetriever Failed retrieving throttling data from remote endpoint: Connection refused. Retrying after 15 seconds...
2016-08-22 16:40:56,653 [-] [Timer-4]  WARN BlockingConditionRetriever Failed retrieving Blocking Conditions from remote endpoint: Connection refused. Retrying after 15 seconds...

环境:

  • APIM 2.0.0 集群
  • 发布者(默认配置文件)
  • 商店(默认配置文件)
  • gw 经理和 2 个 gw 工作人员(默认配置文件)
  • 流量管理器(使用流量管理器配置文件)
  • 数据库:MariaDB 服务器,wsrep_25.10.r4144
  • 用户存储:读/写 LDAP
  • JVM:java 版本“1.8.0_92”
  • 操作系统:CentOS Linux 版本 7.0.1406(核心)
  • n.b.使用默认包设置未配置密钥管理器

【问题讨论】:

  • 您在密钥管理器日志中看到任何错误吗?
  • 不,我们已尝试最小化占用空间,并且未部署在 1.9.1 中可以使用的专用密钥管理器。不幸的是,这产生了无法利用 pub、store 和 gateways 的正确产品配置文件的副作用。
  • 你的意思是你的keymanger和gateway worker在同一个服务器上?
  • 不,实际上我们还没有创建密钥管理器。在此版本和流量管理器组件的引入之前,我们无需配置密钥管理器即可工作。
  • 所以您不使用 OAuth2 来保护 API?你能解释一下你的用例吗?

标签: wso2 wso2-am


【解决方案1】:

如果您在api-manager.xml 中禁用高级限制,如下所示,该错误将消失。如果启用它,它需要一个密钥管理器节点。

<EnableAdvanceThrottling>false</EnableAdvanceThrottling>

【讨论】:

  • 我有一个使用 WSO2 密钥管理器进行身份验证和第三方密钥管理器进行授权的设置。那我们需要怎么配置呢?
【解决方案2】:

我最近遇到了这个问题,问题是在 worker 启动时还没有部署throttle#data#v1.war (repository/deployment/server/webapps/throttle#data#v1.war)。 如果您有分布式 AM 2.0 部署,请确保 Keymanager 已启动,并且在工作 srartup 之前将 throttle#data#v1.war 部署在 keymanager 中。

【讨论】:

  • 他的部署有点奇怪。他没有密钥管理器节点。
  • 某个节点应该提供 keymanager 功能。因此该节点应该部署了 webapp。用于 webapp 端点的 KeyManager 主机名源自内部的“RevokeAPIURL”(在 api-manager.xml 中)配置。
  • 我们需要在网关实例中配置 RevokeAPIURL 吗?根据文档 RevokeAPIURL 应该在 API Store 中配置为指向网关。
猜你喜欢
  • 2017-07-12
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多