1.2. 3scale APIcast 网关策略


3scale 与 3scale APIcast 结合使用,3scale APIcast 是一个与 3scale 一起部署的 API 网关,为 Kafka Bridge 提供单一入口点。

APIcast 策略提供了一种机制来定制网关的运行方式。3scale 为网关配置提供一组标准策略。您还可以创建自己的策略。

有关 APIcast 策略的更多信息,请参阅 Red Hat 3scale 文档

Kafka Bridge 的 APIcast 策略

3scale 与 Kafka Bridge 集成的示例策略配置随 policies_config.json 文件提供,该文件定义:

  • 匿名访问
  • 标头修改
  • 路由
  • URL rewriting

网关策略通过此文件启用或禁用。

您可以使用此示例来定义您自己的策略。

匿名访问
匿名访问策略在没有身份验证的情况下公开服务,在 HTTP 客户端不提供它们时提供默认凭证(匿名访问)。该策略不是强制性的,如果始终需要身份验证,则可以禁用或删除。
标头修改

标头修改策略允许修改现有的 HTTP 标头,或向通过网关的请求或响应添加新的标头。对于 3scale 集成,策略会向从 HTTP 客户端通过网关传递给 Kafka 网桥的每个请求添加标头。

当 Kafka Bridge 收到创建一个新消费者的请求时,它会返回一个 JSON 有效负载,其中包含一个带有消费者所有后续请求必须使用的 URI 的 base_uri。例如:

{
  "instance_id": "consumer-1",
  "base_uri":"http://my-bridge:8080/consumers/my-group/instances/consumer1"
}

使用 APIcast 时,客户端会将所有后续请求发送到网关,而不是直接发送到 Kafka Bridge。因此,URI 需要网关主机名,而不是网关后面的 Kafka 网桥的地址。

使用标头修改策略,将标头添加到来自 HTTP 客户端的请求,以便 Kafka Bridge 使用网关主机名。

例如,通过应用 Forwarded: host=my-gateway:80;proto=http 标头,Kafka Bridge 会为使用者提供以下内容。

{
    "instance_id": "consumer-1",
    "base_uri":"http://my-gateway:80/consumers/my-group/instances/consumer1"
}

X-Forwarded-Path 标头将来自客户端的请求中包含的原始路径传输到网关。当网关支持多个 Kafka Bridge 实例时,这个标头严格与应用的路由策略相关。

路由

当存在多个 Kafka Bridge 实例时,会应用路由策略。请求必须发送到初始创建使用者的同一 Kafka Bridge 实例,因此请求必须为网关指定一个路由,以将请求转发到适当的 Kafka Bridge 实例。

路由策略会命名每个网桥实例,并使用名称执行路由。在部署 Kafka Bridge 时,您可以在 KafkaBridge 自定义资源中指定名称。

例如,每个请求(使用 X-Forwarded-Path)从消费者到:

http://my-gateway:80/my-bridge-1/consumers/my-group/instances/consumer1

转发到:

http://my-bridge-1-bridge-service:8080/consumers/my-group/instances/consumer1

URL 重写策略会删除网桥名称,因为它在将请求从网关转发到 Kafka Bridge 时不使用它。

URL rewriting

在将请求从网关转发到 Kafka Bridge 时,URL rewiring 策略确保从客户端到特定 Kafka Bridge 的请求不包含网桥名称。

网桥名称不在网桥公开的端点中使用。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.