wso2 - WSO2 API Manager 集群部署。一些架构疑问
问题描述
我对集群模式下的WSO2 API Manager 2.6.0安装有以下疑问。
我必须遵循官方文档提出的部署PATTER 4 : https ://docs.wso2.com/display/AM260/Deployment+Patterns
所以这是合乎逻辑的方案:
为了提供高可用性,这种部署模式需要:
- 2 个外部网关组件(在 Internet 上公开的网关)。
- 2 个内部网关组件(内部网关暴露或可通过 VPN 访问)。
- 2 个开发者门户(发布者、带有流量管理器组件的商店)。
- 2 个关键管理器组件。
好的,这对我来说很清楚。从这个逻辑模式中,最终客户端为我提供了以下代表实际机器的物理模式(我们将把它部署在一些虚拟机上,我们不使用像 Kubernates 这样的工具):
第二个物理方案说明了必须创建的 VM 以及必须在每台机器上安装的组件。在这里,我发现以下疑问:
正如您在上一张图片中看到的(进入方案的WSO2 API 管理器节点部分),网关组件似乎被拆分为网关管理器和网关工作节点。似乎在 2 个网关场景中,第一个网关组件(管理器节点和工作程序节点)有 2 个节点,第二个网关组件(另一个管理器节点和另一个工作程序节点)有其他 2 个节点。在我看来,这很奇怪。据我所知,网关组件是自洽的,我不必拆分管理节点和工作节点。我的想法是我的冗余网关组件(网关 1 和网关 2)只有 2 个节点。是它还是我错过了什么?
另一个疑问与负载平衡有关:网关组件必须在负载平衡器下。我的疑问是:使用 2 个不同的负载均衡器是否有意义?(外部网关节点使用外部LB,内部网关节点使用内部LB)。
最后怀疑它与 2 个密钥管理器节点有关(与必须与 API 管理器集成的 WSO2 IS 组件有关)。我认为这两个节点也必须处于负载平衡状态。那么将这些节点放在前面提到的内部负载均衡器下是否明智?
解决方案
1) APIM 之前曾经有这种worker-manager 分离,并且发布者用于将API 运行时工件发布到网关管理器节点。然后网关管理器将运行时文件保存在其文件系统中,并使用 NFS 将这些文件与其他网关同步。但是现在没有经理档案了。现在发布者发布到自己(即发布者的配置应该指向自己),然后使用 NFS 与网关共享文件。
2)是的,你可以。
3) 是的,你可以。但是,如果您有通过授权码授予生成令牌等用例,您也需要将 KM 暴露给外部 LB,因为当用户登录时,浏览器必须直接与 KM 对话(重定向)。
推荐阅读
- r - 在 R 中使用 Windows CMD 系统命令返回“127”错误
- json - 如何从 JSON 对象流中获取第一个元素?
- sql - 如何在 SQL Bigquery 中提取字符串、数字(来自较长的自由文本)
- sql - 根据特定列识别重复行
- android - MVI 中的共享视图模型
- java - 从 Java 程序调用命令历史记录
- r - 将数据框导出到 R 中的文本文件
- python - ImportError:在 ImageAI 视频对象检测期间无法从“keras.utils.generic_utils”导入名称“LazyLoader”
- javascript - 如何解决自定义元素错误,当我尝试在 vue.js 中的组件之间切换时出现此错误?
- python - 无法在 Python 中解析 XML 文件 - xml.etree.ElementTree.ParseError