Mule API - 部署到 Mule 运行时

Mule API - deploy to a Mule Runtime

我最近在试验 Mule API 管理。我了解到我们可以将 API 部署到其中之一:

  1. Mule 运行时
  2. 一个API网关

documentation 中,据说当我们希望 分离出您的 API 来自编排。这是什么意思?

谁能详细解释一下?

不太确定他们在那里的意思,因为在这个页面上:https://developer.mulesoft.com/docs/display/current/API+Gateway他们还提到了这个:

Note that the API Gateway, because it acts as an orchestration layer for services and APIs implemented elsewhere, is technology-agnostic. You can proxy non-Mule services or APIs of any kind, as long as they expose HTTP/HTTPS, VM, Jetty, or APIkit Router endpoints. You can also proxy APIs that you design and build with API Designer and APIkit to the API Gateway to separate the orchestration from the implementation of those APIs.

因此,这两种方法在技术上都允许您将 API 与编排分开,因为您的 API 网关应用程序可以简单地代理其他地方执行编排的另一个 Mule 应用程序。但是我对这两个选项的理解是:

API 网关是一个有限的产品,允许您使用 Mule 的连接器、传输和模块的子集,例如 ApiKit 和 HTTP,它允许您公开并 API 然后使用 http连接到您想要作为代理的任何后端系统,并在 API 层中执行编排。

通过使用 Mule 运行时操作,它为您提供了更大的灵活性,并允许您使用各种连接器等组合任意数量的应用程序,并将应用程序的不同方面分离到尽可能多的层中作为可单独部署的实体,您可以将其部署到本地独立实例或 Cloudhub 等。

@Ryan 的回答或多或少是正确的,但是如果您选择 Mule ESB 产品,您将失去 API 网关提供 OOTB 的 API 管理和治理功能。

这些包括

  • 让您执行运行时策略并收集数据进行分析

  • 将策略应用于 API 或端点,围绕安全、节流、
    速率限制等

  • 扩展 PingFederate 以用作身份管理和 OAuth
    您的 APIs

  • 的提供商
  • 让您通过几个简单的步骤要求或限制某些行为

  • 允许您在运行时添加或删除策略,无需 API 停机

  • 通过发布合同密钥

  • 管理对您的API的访问
  • 监控 API 以确认其符合所有合同条款

  • 确保遵守服务水平协议 (SLA)

我认为 API Gateway/Manager 如果你的 API 会消耗我的第三方开发人员,你可能不会与他们有太多互动(想想 public API's) else Mule ESB 应该不错。

如果需要,您应该也可以轻松地从 Mule ESB 迁移到 API Manager(反之亦然),所以我认为您不会被自己的决定所束缚

PS:从here

复制的内容

来自 API 平台和分析生成的策略管理可以 通过使用正确配置的 API 网关实现,它是 Mule EE 的超集(当前版本是 API Gateway 2.1.0,其中包含 Mule EE 3.7.2)。

根据您的体系结构,您可能有不同的解决方案。

例如:

  • 代理 运行 在 API 网关上,实现 API 运行 某处 其他(例如 Mule EE/CE、Tomcat、cobol 服务器等)
  • 代理和实现 API 运行 在同一个 API 网关上
  • 实施API 直接从 API 平台管理,不使用自动生成的 代理。

HTH:-)