OpenShift 中 AMQ Streams 1.3 发行注记
在 OpenShift Container Platform 中使用 AMQ Streams
摘要
第 1 章 功能
本发行版本中添加的功能,以及之前 AMQ Streams 版本中没有的功能,如下所述。
1.1. Kafka 2.3.0 支持
AMQ Streams 现在支持 Apache Kafka 版本 2.3.0。
AMQ Streams 基于 Kafka 2.3.0。仅支持由红帽构建的 Kafka 发行版本。
您必须将 Cluster Operator 升级到 AMQ Streams 版本 1.3,然后才能将代理和客户端应用程序升级到 Kafka 2.3.0。具体步骤请查看 AMQ Streams 和 Kafka 升级。
如需了解更多信息,请参阅 Kafka 2.2.1 和 Kafka 2.3.0 发行注记。
只有在 AMQ Streams 中只支持 Kafka 2.2.x 作为升级目的。
有关支持版本的更多信息,请参阅客户门户网站中的 Red Hat AMQ 7 组件详情页。
1.2. AMQ Streams Kafka Bridge
AMQ Streams Kafka Bridge 从技术预览移到 AMQ Streams 的一般组件。
1.2.1. 概述
Kafka Bridge 为 AMQ Streams 提供了一个 RESTful 接口,它提供了 web API 的优点,它可以轻松地与 AMQ Streams 连接,而无需考虑客户端应用程序来解释 Kafka 协议。
API 有两个主要资源 3.10.0-- consumers 和 主题 thats 通过端点公开,可让您与 Kafka 集群中的使用者和制作者进行交互。这些资源仅与 Kafka Bridge 相关,而不与与 Kafka 连接的使用者和制作者相关。
Kafka Bridge 支持 HTTP 请求:
- 将消息发送到主题。
- 从主题检索消息。
- 创建和删除消费者。
- 将消费者订阅到主题,以便它们开始从这些主题收到信息。
- 检索消费者订阅的主题列表。
- 取消订阅消费者的主题。
- 为消费者分配分区。
- 提交使用者偏移。
- 对分区执行 seek 操作。
该方法提供 JSON 响应和 HTTP 响应代码错误处理。可以使用 JSON 或二进制格式发送消息。
请参阅 Kafka Bridge 概述 和 Kafka Bridge 配置。有关 API 文档,请参阅 Kafka Bridge API 参考。
要从本地机器尝试 API,请参阅 Kafka Bridge Quickstart。
1.2.2. 从技术预览开始的 API 更改
自技术预览发布以来,对 Kafka Bridge API 进行了以下更改:
-
添加了
openapi端点。这会以 JSON 格式检索 Kafka Bridge 的 OpenAPI 2.0 规格。 -
订阅端点现在支持GET请求来检索消费者订阅的所有主题的列表。
请参阅 Kafka Bridge API 参考中的 openapi 和 subscription 端点。
另外,以下消费者配置设置 对 OpenAPI 规格(OAS)中声明的数据类型有破坏 :
| 消费者配置设置 | 之前声明为… | 现在声明为… |
|---|---|---|
|
| 字符串 | 整数 |
|
| 字符串 | 布尔值 |
|
| 字符串 | 整数 |
现在,这些设置的数据类型由 OAS 验证。因此,如果将无效的数据类型提交到 /consumers 端点,OAS 会返回 400 Bad Request 代码(包含无效设置的详情)。在以前的版本中,会返回一个常规 500 Internal Server Error 代码。
1.2.3. 3scale 与 Kafka Bridge 集成
现在,您可以将 Red Hat 3scale API Management 与 Kafka Bridge 集成。
3scale 可以使用 TLS 保护 Kafka Bridge,并提供身份验证和授权。与 3scale 集成还意味着现在还提供指标数据、速率限制和账单等其他功能。
请参阅在 3scale 中使用 Kafka Bridge。
1.2.4. 3scale 服务发现注解和标签
部署 Kafka Bridge 时,提供 Kafka Bridge 的 REST 接口的服务具有 3scale 发现所需的注解和标签。
请参阅 Kafka Bridge 服务发现。
1.2.5. Kafka Bridge Quickstart
Kafka Bridge 的新快速入门指南可帮助您从本地机器试用 API。Quickstarts 提供了 API 中最常用的方法的 curl 请求示例。
1.3. 自定义资源的状态属性
AMQ Streams 自定义资源的状态属性从技术预览移到通常可用功能。
您可以通过查询 其状态 属性来检查自定义资源的当前状态。资源状态将资源的相关信息发布到需要信息的用户和工具。当前状态和最后 观察到的生成 每个资源都可用。有些资源还会发布特定于资源的信息。
以下资源可使用状态信息:
-
Kafka -
KafkaTopic -
KafkaConnect -
KafkaConnectS2I -
KafkaMirrorMaker -
KafkaUser -
KafkaBridge
要检查资源的状态,请使用 oc get 命令并应用 JSONPath 表达式,例如:
oc get kafka KafkaTopic -o jsonpath='{.status}'
oc get kafka KafkaBridge -o jsonpath='{.status.observedGeneration}'
1.4. Kafka Exporter 支持
Kafka Exporter 是一个开源项目,用于增强对 Apache Kafka 代理和客户端的监控。Kafka Exporter 由 AMQ Streams 使用 Kafka 集群进行部署,以便从与偏移、消费者组、消费者和主题相关的 Kafka 代理中提取其他指标数据。
例如,使用指标数据来帮助识别较慢的用户。
lag 数据作为 Prometheus 指标公开,然后可以在 Grafana 中进行分析。
如果您已经使用 Prometheus 和 Grafana 进行内置 Kafka 指标的监控,您可以将 Prometheus 配置为提取 Kafka Exporter Prometheus 端点。
请参阅 Kafka Exporter。
第 2 章 功能增强
下面概述了本发行版本中添加的增强功能。
2.1. Kafka 2.3.0 的改进
有关 Kafka 2.3.0 引入的增强功能概述,请参阅 Kafka 2.3.0 发行注记。
2.2. 指标
AMQ Streams 提供的指标配置示例已更新。您可以从 AMQ Streams 下载网站 中的安装 ZIP 文件中的示例指标配置文件。
您可以使用 Prometheus 设置进行监控,以便为 Grafana 仪表板提供监控数据。为以下几项提供示例配置:
- 在 Kafka 集群中添加指标配置
- 部署 Prometheus 和 Prometheus Alertmanager 插件
- 部署 Grafana
请参阅 引入指标。
2.3. mirror Maker Healthchecks
现在,您可以为 Mirror Maker 资源配置存活度和就绪度探测。这些 Healthcheck 允许您检查 AMQ Streams 部署中的 Mirror Maker 副本的状态。
2.4. 自定义环境变量
现在,您可以通过在资源中设置模板属性来为 Kafka 代理、Mirror Maker 和 Kafka Connect 容器设置自定义环境变量。例如,您可以使用 Kafka.spec.kafka 中的 kafkaContainer 模板属性:
# ...
spec:
kafka:
template:
kafkaContainer:
env:
- name: TEST_ENV_1
value: test.env.one
- name: TEST_ENV_2
value: test.env.two
# ...您可以在配置分布式追踪时设置自定义环境变量,这是本发行版本中的一个技术预览功能。
第 3 章 技术预览
技术预览功能不被红帽产品服务级别协议(SLA)支持,且可能无法完成。因此,红帽不推荐在生产环境中实施任何技术预览功能。此技术预览功能为您提供对即将推出的产品创新的早期访问,允许您在开发过程中测试并提供反馈。如需有关支持范围的更多信息,请参阅 技术预览功能支持范围。
3.1. 使用 Jaeger 的分布式追踪
这是技术预览功能。
此发行版本添加了对在典型 Kafka 架构中事务的分布式追踪支持。通过使用包括的 OpenTracing Java 库,您可以检测客户端应用程序来生成事务的追踪,如生成和消耗消息。
以下组件支持分布式追踪:
- Kafka 集群
- 生产者和消费者
- Kafka Streams 应用程序
- mirror Maker
- Kafka Connect
使用 Jaeger 在用户界面中视觉化了 trace 数据。您可以使用这些信息从端到端监控 Kafka 集群的操作,并调试目标系统和应用程序的性能问题。
Jaeger 用户界面中的查询示例
请参阅 分布式追踪。
3.2. OAuth 2.0 身份验证
这是技术预览功能。
AMQ Streams 支持使用 SASL OAUTHBEARER 机制的 OAuth 2.0 身份验证。
通过使用基于 OAuth 2.0 令牌的身份验证,应用程序客户端可以在不公开帐户凭证的情况下访问应用服务器(称为"资源服务器")上的资源。客户端将访问令牌作为身份验证方式提供,应用服务器也可以使用它来查找有关授予的访问权限级别的更多信息。授权服务器负责授予访问和查询访问权限。
在 AMQ Streams 上下文中:
- Kafka 代理充当资源服务器
- Kafka 客户端充当资源客户端
代理和客户端根据需要与 OAuth 2.0 授权服务器通信,以获取或验证访问令牌。
对于 AMQ Streams 的部署,OAuth 2.0 集成提供:
- 对 Kafka 代理的服务器端 OAuth 2.0 支持
- Kafka Mirror Maker、Kafka Connect 和 Kafka Bridge 的客户端 OAuth 2.0 支持
Red Hat Single Sign-On 集成
您可以将 Red Hat Single Sign-On 部署为授权服务器,并对它进行配置以用于与 AMQ Streams 集成。
您可以使用 Red Hat Single Sign-On:
- 为 Kafka 代理配置身份验证
- 配置并授权客户端
- 配置用户和角色
- 获取访问和刷新令牌
3.3. 更改数据捕获
这是技术预览功能。
Red Hat Change Data Capture 是一个分布式平台,用于监控数据库并创建更改事件流。Change Data Capture 基于 Apache Kafka 构建,并可部署并与 AMQ Streams 集成。
在部署了 AMQ Streams 后,您可以通过 Kafka Connect 将 Change Data Capture 部署为连接器配置。
Change Data Capture 捕获对数据库表的行级更改,并将对应的更改事件传递给 OpenShift 上的 AMQ Streams。应用程序可以读取 这些更改事件流,并按发生更改事件的顺序访问更改事件。
Change Data Capture 有多个用途,包括:
- 数据复制
- 更新缓存和搜索索引
- 简化单体式应用程序
- 数据集成
- 启用流查询
更改数据捕获(基于 Kafka Connect)为以下常见数据库提供连接器:
- MySQL
- PostgreSQL
- SQL Server
- MongoDB
Debezium 是更改数据捕获的开源项目。
有关使用 AMQ Streams 部署 Change Data Capture 的更多信息,请参阅使用 AMQ Streams 部署 Debezium 1.0 技术预览。
第 4 章 已弃用的功能
AMQ Streams 1.3 没有已弃用的功能。
第 5 章 修复的问题
下表列出了 AMQ Streams 1.3 中修复的问题。
| 问题号 | 描述 |
|---|---|
| 创建消费者的操作不应包含 HTTP 代码 500 响应 | |
| 缺少 Kafka Connect S2I 的仪表板 | |
| [labels] - 修改标签 | |
| 解码无效 JSON 时未处理的异常 | |
| 在使用不支持的 Kafka 版本部署 Kafka 集群时 NPE | |
| 在欧盟/UO 角色绑定管理中修复空检查 | |
| 修复了已弃用的 Topic Operator 以使用新镜像 | |
|
在删除. |
第 6 章 已知问题
下表列出了 AMQ Streams 1.3 的已知问题。
| 问题号 | 描述 |
|---|---|
|
当访问 AMQ Streams Kafka Bridge 资源的状态信息时,外部客户端访问 Kafka Bridge 服务的 URL 不正确。URL 的 #...
status:
conditions:
- lastTransitionTime: "2019-10-15T14:21:40.520Z"
status: "True"
type: Ready
observedGeneration: 1
url: http://my-bridge-bridge-bridge-service.myproject.svc:8080
上例中的正确 URL 是 |
第 7 章 支持的集成产品
AMQ Streams 1.3 支持与以下红帽产品集成。
- Red Hat Single Sign-On 7.3.0 for OAuth 2.0 支持(作为技术预览)
- Red Hat 3scale API Management 2.6 用来保护 Kafka Bridge,并提供额外的 API 管理功能
有关这些产品可引入到 AMQ Streams 部署的功能信息,请参阅 AMQ Streams 1.3 文档。
第 8 章 重要链接
在 2022-07-02 18:13:59 +1000 上修订