【问题标题】:WSO2 APIM and EI docker patterns integrationWSO2 APIM 和 EI docker 模式集成
【发布时间】:2017-11-07 01:46:02
【问题描述】:

我想测试 WSO2 docker 部署模式并使用这些模式构建集成解决方案。具体来说,我使用的是apim pattern-0ei pattern-5。我在两台不同的 docker 机器上部署了 apim 模式和 ei 模式以避免端口冲突。我还在 docker 机器和本地主机上的 hosts 文件中添加了以下条目:

*"ei docker机器的ip" ui.integrator.wso2.com integrator.wso2.com

"apim docker 机器的 ip" api-manager*

然后我创建了一个非常简单的healthcare api 并将其部署在 ei 集群上。我验证可以从主机成功访问医疗保健api:“curl -v http://integrator.wso2.com:80/healthcare/querydoctor/surgery”。

在 apim 上,我实现并发布了一个新的 REST API,它可以从 ei 集群访问医疗保健 API。但是,当我从主机访问这个新的 apim 的 API 时,我总是得到 500 响应,内部错误代码 101503 和 错误连接到后端的错误描述。此外,apim 的 http 线路日志显示 Connection denied or failed for : integrator.wso2.com:80

我的主机运行的是 Ubuntu 16.04LTS、docker 版本 17.09.0-ce 并使用带有 HttpRequester 插件的 Firefox。

知道为什么 apim 在我的部署中无法从 ei 访问医疗保健 api 吗?或者,如果有任何关于如何使用 WSO2 docker 模式构建集成解决方案的指南,将不胜感激。

【问题讨论】:

  • 这个 url 应该可以从 apim docker 容器中访问。不是来自主机。 integrator.wso2.com:80/healthcare/querydoctor/surgery.
  • 是的,这就是问题所在。该 url 似乎无法从 apim docker 容器内部访问,但可以从主机访问。你知道是什么原因造成的吗?

标签: wso2 wso2-am


【解决方案1】:

出现此问题的原因可能是您在主机上创建的两台 Docker 机器中可能使用了仅主机网络。 API Manager Docker 容器将无法解析 WSO2 Enterprise Integrator (integrator.wso2.com) 的域名,因为两台 Docker 机器之间没有 DNS 解析机制。

解决此问题的最简单选择是偏移 Docker Compose 模板之一的端口,并在同一台 Docker 机器上运行 API Manager 和 WSO2 Enterprise Integrator。每个 WSO2 组件的端口偏移量可以在 repository/conf/carbon.xml 文件中设置。

【讨论】:

  • 感谢您的回答。我在 Docker Compose 模板中偏移 API Manager 端口,然后运行 ​​docker 机器。现在 API Manager 可以在 API 请求上到达 EI。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多