Red Hat Integration 2022.q3 发行注记
Red Hat Integration 中的新功能
摘要
第 1 章 Red Hat Integration
Red Hat Integration 是一整套集成和事件处理技术,用于在混合和多云环境中创建、扩展和部署基于容器的集成服务。Red Hat Integration 提供了一个灵活的、分布式和 API 以 API 为中心的解决方案,可供组织用来在数字世界所需的应用程序和系统间连接和共享数据。
Red Hat Integration 包括以下功能:
- 实时消息传递
- 跨数据中心消息流
- API 连接
- 应用程序连接器
- 企业级集成模式
- API 管理
- 数据转换
- 服务组成和编配
其他资源
第 2 章 Camel Extensions for Quarkus 发行注记
2.1. Camel Extensions for Quarkus 功能
- 快速启动和低 RSS 内存
- 通过使用优化的构建时间和提前(AOT)编译功能 Quarkus,您的 Camel 应用程序可以在构建时预先配置,从而导致快速启动时间。
- 应用程序生成器
- 使用 Quarkus 应用程序生成器 来引导您的应用程序并发现其扩展生态系统。
- 高可配置
可以以编程方式使用 CDI (Context 和依赖注入)或通过配置属性来设置 Camel Extensions for Quarkus 应用程序的所有重要方面。默认情况下,会为您配置和自动启动 CamelContext。
有关 bootstrap 和 配置应用程序的不同方法的更多信息,请参阅 配置 Quarkus 应用程序 指南。
- 与现有 Quarkus 扩展集成
- Camel Extensions for Quarkus 为库和框架提供扩展,供一些继承原生支持和配置选项的 Camel 组件使用。
2.2. 支持的平台、配置、数据库和扩展
- 有关 Camel Extensions for Quarkus 版本 2.7.1 中支持的平台、配置和数据库的详情,请查看客户门户网站中的支持的配置页面(需要登录)。
- 有关 Red Hat Camel Extensions for Quarkus 扩展和每个扩展的红帽支持级别的列表,请参阅 Camel Extensions for Quarkus Reference 中的 Extensions Overview 章节(需要登录)。
2.3. 技术预览扩展
红帽不支持本 Camel Extensions for Quarkus 提供的技术预览组件。在 Camel Extensions for Quarkus Reference 的 Extensions Overview 章节中被指定为技术预览的项目有有限的支持性,如技术预览功能支持范围定义。
2.4. 重要备注
- 对扩展的原生模式支持
- Camel Extensions for Quarkus 版本 2.7.1 引入了对许多扩展的原生模式支持。有关扩展及其支持级别的完整列表,请参阅 Camel Extensions for Quarkus Reference 中的扩展概述章节。
- Camel 从版本 3.11.5 升级到 3.14.2
Camel Extensions for Quarkus 版本 2.7.1 已从 Camel 版本 3.11.5 升级到 Camel 版本 3.14.2。有关每个内部 Camel 补丁版本的附加信息,请参考以下内容:
- Camel Quarkus 从 2.2 升级到 2.7
Camel Extensions for Quarkus 版本 2.7.1 已从 Camel Quarkus 版本 2.2 升级到 Camel Quarkus 版本 2.7。有关每个内部 Camel Quarkus 补丁发行版本的更多信息,请参阅:
- Elasticsearch Rest 扩展已从 Camel Extensions for Quarkus 中删除
camel-quarkus-elasticsearch-rest扩展已在 Camel Extensions for Quarkus 版本 2.2.1 中弃用,并已在这个版本中删除。注意camel-quarkus-elasticsearch-rest仍可使用code.quarkus.redhat.com在线项目生成器工具,但仅支持社区支持。
2.5. 已解决的问题
下表列出了影响 Camel Extensions for Quarkus 的已知问题,这些扩展已在 Camel Extensions for Quarkus 版本 2.7.1 中解决。
表 2.1. Camel Extensions for Quarkus 2.7.1 解决的问题
| 问题 | 描述 |
|---|---|
| 当将消息发送到延迟的队列时,AWS2 SQS 不会被遵守延迟。 | |
|
NSQ、HDFS 和 Spark 中缺少 productized |
有关 Camel Quarkus 2.2 和 Camel Quarkus 2.7 之间解决的其他问题的详情,请查看每个补丁发行版本的 发行注记。
2.6. 其他资源
2.7. 从 Camel Extensions for Quarkus 2.2 迁移到 2.7
Camel Extensions for Quarkus 2.7 包括带有破坏之前 Camel Extensions for Quarkus 2.2 发行版本中更改的新功能。这部分论述了 Camel Extensions for Quarkus 2.2 和版本 2.7 间的主要变化。
由于 2.7 中的中断更改,因此不需要自动升级,且需要迁移过程。您还必须检查您的现有 Camel Extensions for Quarkus 应用程序并更新其配置以满足新要求。
迁移到 2.7 时,您必须考虑以下主要更改:
2.7.1. 默认使用安全关闭策略
在以前的版本中,默认情况下不使用安全关闭策略(Camel 中的默认策略)。关闭没有被任何策略控制。
这不再是这种情况。正常关闭策略默认为启用,仅有一个例外。如果没有设置安全关闭的超时,且应用程序在开发模式下运行,则不会使用关闭策略(对正常超时没有超时的开发模式的行为)。
DefaultShutdownStrategy 可以通过 application.properties 配置。例如:
#set graceful timeout to 15 seconds camel.main.shutdownTimeout = 15
2.7.2. 弃用的 vertx-kafka 扩展已被删除
弃用的 vertx-kafka 扩展已被删除。使用此组件的任何路由都需要修改以使用 kafka 扩展。
2.7.3. 删除配置属性 quarkus.camel.main.enabled
自 Camel Quarkus 1.8.0 起,Camel Main 已作为默认 bootstrap 模式启用。现在,配置属性 quarkus.camel.main.enabled 已被删除,因为禁用 Camel Main 没有主要优点。
2.7.4. Removal of @BuildTimeAvroDataFormat
弃用的 @BuildTimeAvroDataFormat 注释已被删除。用户必须在构建时使用 Avro 模式解析,如 Camel Quarkus Avro 扩展 文档中所述。
第 3 章 Debezium 发行注记
Debezium 是一个分布式更改数据捕获平台,用于捕获数据库表中发生的行级更改,然后将对应的更改事件记录传递给 Apache Kafka 主题。应用程序可以读取 这些更改事件流,并按发生更改事件的顺序访问更改事件。Debezium 基于 Apache Kafka 构建,并与 OpenShift Container Platform 或 Red Hat Enterprise Linux 上的 AMQ Streams 部署并集成。
此 2022.Q3 版本的 Debezium 基于 Debezium 社区 1.9.5.Final 版本。
以下主题提供发行版本详情:
3.1. Debezium 数据库连接器
Debezium 根据 Kafka Connect 为以下通用数据库提供连接器:
- Db2
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
3.1.1. 连接器使用备注
Db2
-
Debezium Db2 连接器不包括 Db2 JDBC 驱动程序(
jcc-11.5.0.0.jar)。有关如何部署所需的 JDBC 驱动程序的信息,请参阅 部署说明。 - Db2 连接器需要使用抽象语法表示法(ASN)库,该库作为 Linux Db2 的标准部分提供。
- 要使用 ASN 库,您必须有 IBM InfoSphere Data Replication (IIDR)的许可证。您不必安装 IIDR 来使用库。
-
Debezium Db2 连接器不包括 Db2 JDBC 驱动程序(
MongoDB
- 目前,您无法使用 MongoDB 4.2 的 Debezium MongoDB 连接器的事务元数据功能。
Oracle
-
Debezium Oracle 连接器不包括 Oracle JDBC 驱动程序(
ojdbc8.jar)。有关如何部署所需的 JDBC 驱动程序的信息,请参阅 部署说明。
-
Debezium Oracle 连接器不包括 Oracle JDBC 驱动程序(
PostgreSQL
-
要使用 Debezium PostgreSQL 连接器,您必须使用
pgoutput逻辑解码输出插件,这是 PostgreSQL 版本 10 及更新版本的默认值。
-
要使用 Debezium PostgreSQL 连接器,您必须使用
其他资源
3.2. Debezium 支持的配置
有关 Debezium 支持的配置的详情,包括支持的数据库版本的信息,请参阅 Debezium 1.9.5 支持的配置 页面。
3.2.1. AMQ Streams API 版本
Debezium 在 AMQ Streams 2.1 上运行。
AMQ Streams 支持 v1beta2 API 版本,它更新 AMQ Streams 自定义资源的 schema。旧的 API 版本已弃用。升级到 AMQ Streams 1.7 后,但在升级到 AMQ Streams 1.8 或更高版本前,您必须将自定义资源升级到使用 API 版本 v1beta2。
如需更多信息,请参阅 Debezium 用户指南。
3.3. Debezium 安装选项
您可以在 OpenShift 或 Red Hat Enterprise Linux 上使用 AMQ Streams 安装 Debezium :
3.4. 新的 Debezium 功能
Debezium 1.9.5 包括以下更新:
3.4.1. 在 Debezium 1.9.5 中提升到 General Availability 的功能
在 2022.Q3 Debezium 版本中,以下功能从技术预览提升到正式发布:
- 临时和增量和快照
- 提供了一种机制,用于重新运行您之前捕获快照的表的快照。
- Debezium Oracle connector
现在,配置为使用 LogMiner 的数据库完全支持 Oracle 数据库的连接器。此 Debezium Oracle 连接器发行版本包括以下更新:
-
DBZ-3317 描述
十进制.handling.mode属性的文档现在与其他 Debezium 连接器的类似文档一致。 - DBZ-4404 The connecter 现在支持使用信号在 12c 更早的 Oracle 版本中触发 ad hoc 快照。
- DBZ-4436/ DBZ-4883 部署文档现在描述了如何获取 Oracle JDBC 驱动程序作为 Maven 工件。
- DBZ-4494 文档 描述了如何为 Oracle 连接器 LogMiner 用户设置数据库权限。
- DBZ-4536 增加 Oracle 连接器错误处理程序的灵活性,以重试在 mining 会话期间发生的错误。
- DBZ-4595 Oracle 连接器现在支持 'ROWID' 数据类型。
- DBZ-4963 Introduce log.mining.session.max.ms 配置选项用于 Oracle 连接器。
- 在调整 LogMiner 批处理大小时,DBZ-5005 时,新大小现在基于当前的批处理大小,而不是默认大小。
- DBZ-5119 用户可以配置连接器来发出心跳事件,以确保连接器偏移保持在表格中,在延长期间未发生更改。
- DBZ-5225 LogMiner 事件 SCN 现在包含在 Oracle 更改事件记录中,以防止在间隔期间发出的每个事件都使用与最旧的 in-progress 事务相同的低水位 SCN 值。
- 当在快照阶段无法找到不正确的删除归档日志时,DBZ-5256 以防止失败,Oracle 连接器不再默认使用检查不完整事务的进度。
-
DBZ-5399 Update 文档为
signal.data.collection属性指定,在可插拔数据库环境中指定属性的值必须设置为 root 数据库的名称。
有关技术预览中引入的 Oracle 连接器功能列表,请参阅 2022.Q1 发行注记
-
DBZ-3317 描述
- outbox 事件路由器
- 支持 outbox 模式的单个消息转换(SMT),可在多个(micro)服务之间安全地交换数据。
- 向 Debezium 连接器发送信号
- Integration 信号机制提供了一种方式,可以修改连接器的行为,或触发连接器来执行一次性操作,如启动表的临时增量快照。
3.4.2. 其他最新的 Debezium 功能更新
- 2022.Q3 中的更新
以下列表包含 2022.Q3 Debezium 版本中所含更改的信息:
- DBZ-3762 默认情况下,MySQL 连接器不再会在 DDL 到数据库历史记录中传播在线注释。
- https://issues.redhat.com/browse/DBZ-4351[DBZ-4351 添加指标来监控从上一次启动以来 DML create/update/delete 事件连接器发送的数量
- DBZ-4415 删除对在 oplog 模式中使用带有 MongoDB 5 或更高的 MongoDB 连接器的支持
- DBZ-4451 Connectors 现在可以正确恢复重命名表的历史记录。
- DBZ-4472 Connectors 日志现在记录有关事件源分区的信息。
- 现在可以从多个分区检索连接器的 DBZ-4478 指标。
-
DBZ-4518 现在您可以通过设置
database.history.kafka.query.timeout.ms属性来配置 KAFKA_QUERY_TIMEOUT。 - DBZ-4541 MySQL 和 Oracle 连接器现在必须成功注册 JMX 指标,然后才能启动。
- DBZ-4547 MySQL 连接器现在可以在 SaaS 环境中成功创建其历史记录主题。
- DBZ-4600 当 MongoDB 连接器与 outbox 事件路由器一起使用时,您可以将其配置为解码二进制有效负载。
- 当连接器配置为十进制字符串模式时,DBZ-4730 时,它现在需要普通字符串值,而不是科学指数表示法。
- DBZ-4809 为多分区连接器添加一个任务 ID 和分区到日志记录上下文。
- DBZ-4823 MySQL 连接器不再记录排除表的 tableId 的 null 值。
- DBZ-4832 现在 MySQL 连接器不再从系统变量获取信任存储和密钥存储参数。
-
DBZ-4834 Incremental 快照现在正确地包含添加到
include列表中的表。 - DBZ-4861 PostgreSQL 连接器现在在记录快照事件时提供 schema 信息。
- DBZ-4948 PostgreSQL 连接器现在重试因为网络例外而关闭的连接。
3.4.3. 2022.Q1 更新
有关之前 Debezium 发行版本中包含的功能列表,请参阅 2022.Q1 发行注记。
3.5. 技术预览功能
红帽产品服务级别协议(SLA)不支持技术预览功能,且可能无法完成。红帽不推荐在生产环境中实施任何技术预览功能。技术预览功能为用户提供了一个对最新的产品创新的试用机会,以便用户可以对其进行测试并提供反馈。如需有关支持范围的更多信息,请参阅 技术预览功能支持范围。
Debezium 包括以下技术预览功能:
- MongoDB 连接器的临时和增量快照
- 提供了一种机制,用于重新运行您之前捕获快照的表的快照。
- CloudEvents converter
-
发出更改符合 CloudEvents 规格的事件记录。CloudEvents 更改事件 envelope 可以是 JSON 或 Avro,每个 envelope 类型支持 JSON 或 Avro 作为
数据格式。CloudEvents 更改事件 envelope 支持 Avro 编码更改事件 envelope 可以是 JSON 或 Avro,每个信封类型支持 JSON 或 Avro 作为数据格式。 - 基于内容的路由
- 根据事件内容,提供将所选事件重新路由到特定主题的机制。
- custom-developed converters
- 如果默认数据类型转换不符合您的需要,您可以创建用于连接器的自定义转换器。
- 过滤 SMT
- 允许您指定希望连接器发送到代理的记录子集。
- MongoDB 连接器的信号
- 提供修改连接器行为的机制,或触发一次性操作,如启动表 的临时快照。
- 使用带有 Oracle 连接器 的
BLOB、CLOB和NCLOB数据类型 - Oracle 连接器可以使用 Oracle 大对象类型。
3.6. 弃用了 Debezium 功能
- PostgreSQL
truncate.handling.mode属性 -
本发行版本中弃用 Debezium PostgreSQL 连接器的
truncate.handling.mode属性已弃用,并计划在以后的发行版本中删除(DBZ-4419)。在其位置使用skipped.operations属性。 - MonitoredTables 选项用于连接器快照和流指标
-
本发行版本中已弃用 Debezium 连接器指标的
MonitoredTables选项,并计划在以后的发行版本中删除。在其位置使用CapturedTables指标。
第 4 章 Camel K 发行注记
Camel K 是一个从 Apache Camel K 构建的轻量级集成框架,它在 OpenShift 上的云中原生运行。Camel K 是专门为无服务器和微服务架构而设计的。您可以使用 Camel K 来立即在 OpenShift 中使用 Camel 域特定语言(DSL)编写的集成代码。
在 OpenShift Serverless 和 Knative 中使用 Camel K,容器仅根据需要自动创建,并在负载下自动缩放为零。这消除了服务器配置和维护的开销,并可让您专注于应用程序开发。
在 OpenShift Serverless 和 Knative Eventing 中使用 Camel K,您可以管理系统中的组件如何在事件驱动的无服务器应用程序架构中进行通信。这通过使用发布/订阅或事件流模型和事件流模型提供灵活性并提高效率。
4.1. Camel K 功能
Camel K 提供了与以下主要功能的云原生集成:
- 用于自动扩展和缩减为零的 Knative Serving
- 用于事件驱动的构架的 Knative Eventing
- 默认情况下,使用 Quarkus 运行时进行性能优化
- Camel 集成使用 Java 或 YAML DSL 编写
- 使用 OpenShift 中的 Prometheus 监控集成
- Quickstart 教程
- Kamelet 目录用于到外部系统的连接器,如 AWS、JIRA 和 Salesforce
- 支持 Timer 和 Log Kamelets
- Metering for Camel K Operator 和 pod
- 支持 IBM MQ 连接器
- 支持 Oracle 19 数据库
4.2. 支持的配置
有关 Camel K 支持的配置、标准和组件的详情,请查看以下客户门户网站文章:
4.2.1. Camel K Operator 元数据
Camel K 包括用于从 OpenShift OperatorHub 安装 Camel K 的更新 Operator 元数据。此 Operator 元数据包括用于发行打包的 Operator 捆绑包格式,用于 OpenShift Container Platform 4.6 或更高版本。
4.3. 重要备注
Red Hat Integration 的重要备注 - Camel K 发行版本:
- 支持在 ROSA 上运行 Camel K
- Camel K 现在支持在 Red Hat OpenShift Service on AWS (ROSA)上运行。
- 支持 Camel K 中的 IBM MQ 源连接器
- IBM MQ 源连接器 kamelet 被添加到最新的 Camel K 中。
- 支持 Oracle 19
- 现在,Camel K 支持 Oracle 19。如需更多信息,请参阅 支持的配置 页面。
- 在 Windows 机器上使用 Camel K CLI 命令
-
在 Windows 计算机上使用 kamel cli 命令时,命令中的
resource选项中的路径必须使用 linux 格式。例如,
//Windows path kamel run file.groovy --dev --resource file:C:\user\folder\tempfile@/tmp/file.txt //Must be converted to kamel run file.groovy --dev --resource file:C:/user/folder/tempfile@/tmp/file.txt
- Red Hat Integration - Camel K Operator 镜像大小已增加
- 从 Red Hat Integration - Camel K 1.8.1.redhat-00024 开始,Camel K Operator 镜像的大小会加倍。
- 接受 YAML DSL 中的 Camel 问题单表示法
-
从 Red Hat Integration - Camel K 1.8.1.redhat-00024 开始,YAML DSL 将接受相机案例表示法(即
setBody)以及 snake case (i.eset-body)。请注意,语法有一些区别,因为架构可能会有变化。
4.4. 支持的 Camel Quarkus 扩展
本节列出了此 Camel K 发行版本(仅在 Camel K 中使用时)支持的 Camel Quarkus 扩展。
只有在 Camel K 应用程序内使用时,才支持这些 Camel Quarkus 扩展。这些 Camel Quarkus 扩展不支持在独立模式中使用(不带 Camel K)。
4.4.1. 支持的 Camel Quarkus 连接器扩展
下表显示了此 Camel K 版本支持的 Camel Quarkus 连接器扩展(仅在 Camel K 应用程序中使用时)。
| 名称 | 软件包 |
|---|---|
| AWS 2 Kinesis |
|
| AWS 2 Lambda |
|
| AWS 2 S3 Storage Service |
|
| AWS 2 Simple Notification System (SNS) |
|
| AWS 2 Simple Queue Service (SQS) |
|
| Cassandra CQL |
|
| File |
|
| FTP |
|
| FTPS |
|
| SFTP |
|
| HTTP |
|
| JMS |
|
| Kafka |
|
| Kamelets |
|
| 指标 |
|
| MongoDB |
|
| Salesforce |
|
| SQL |
|
| timer |
|
4.4.2. 支持的 Camel Quarkus 数据格式扩展
下表显示了此 Camel K 版本支持的 Camel Quarkus 数据格式扩展(仅在 Camel K 应用程序中使用时)。
| 名称 | 软件包 |
|---|---|
| avro |
|
| 绑定(用于 CSV) |
|
| gson |
|
| JSON Jackson |
|
| jackson Avro |
|
4.4.3. 支持的 Camel Quarkus 语言扩展
在本发行版本中,Camel K 支持以下 Camel Quarkus 语言扩展(用于 Camel 表达式和 predicates):
- 常数
- ExchangeProperty
- File
- 标头
- Ref
- Simple(简单)
- tokenize
- JsonPath
4.4.4. 支持的 Camel K trait
在本发行版本中,Camel K 支持以下 Camel K traits。
- builder trait
- Camel trait
- 容器特征
- 依赖项特征
- deployer trait
- 部署特征
- 环境特征
- JVM 特征
- Kamelets trait
- 所有者特征
- 平台特征
- pull Secret trait
- Prometheus trait
- Quarkus 特征
- 路由特征
- 服务特征
- 错误处理程序特征
4.5. 支持的 Kamelets
下表列出了在安装 Camel K operator 时作为 OpenShift 资源提供的 kamelets。
有关这些 kamelets 的详细信息,请访问 :https://github.com/openshift-integration/kamelet-catalog/tree/kamelet-catalog-1.8
有关如何使用 kamelets 连接应用程序和服务的详情,请参考 https://access.redhat.com/documentation/zh-cn/red_hat_integration/2022.q3/html-single/integrating_applications_with_kamelets。
技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。
这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview。
表 4.1. Camel K operator 提供的 Kamelets
| Kamelet | 文件名 | 类型(Sink、Source、Action) |
|---|---|---|
| Ceph sink |
| sink |
| Ceph 源 |
| 源 |
| JIRA Add Comment sink |
| sink |
| JIRA 添加问题 sink |
| sink |
| JIRA Transition 问题 sink |
| sink |
| JIRA 更新问题 sink |
| sink |
| Avro Deserialize 操作 |
| 操作(数据转换) |
| Avro Serialize 操作 |
| 操作(数据转换) |
| AWS DynamoDB sink |
| sink |
| AWS Red Hatshift sink |
| sink |
| AWS 2 Kinesis sink |
| sink |
| AWS 2 Kinesis 源 |
| 源 |
| AWS 2 Lambda sink |
| sink |
| AWS 2 简单通知系统接收器 |
| sink |
| AWS 2 Simple Queue Service sink |
| sink |
| AWS 2 Simple Queue Service source |
| 源 |
| AWS 2 Simple Queue Service FIFO sink |
| sink |
| AWS 2 S3 sink |
| sink |
| AWS 2 S3 源 |
| 源 |
| AWS 2 S3 Streaming Upload sink |
| sink |
| Azure Storage Blob Source (技术预览) |
| 源 |
| Azure Storage Blob Sink (技术预览) |
| sink |
| Azure Storage Queue Source (技术预览) |
| 源 |
| Azure Storage Queue Sink (技术预览) |
| sink |
| Cassandra sink |
| sink |
| Cassandra 源 |
| 源 |
| 提取字段操作 |
| 操作 |
| FTP sink |
| sink |
| FTP 源 |
| 源 |
| 具有标头键过滤器操作 |
| 操作(数据转换) |
| Hoist Field 操作 |
| 操作 |
| HTTP 接收器 |
| sink |
| 插入字段操作 |
| 操作(数据转换) |
| 插入标头操作 |
| 操作(数据转换) |
| 是 Tombstone Filter 操作 |
| 操作(数据转换) |
| JIRA 源 |
| 源 |
| JMS sink |
| sink |
| JMS 源 |
| 源 |
| JMS IBM MQ sink |
| sink |
| JMS IBM MQ 源 |
| 源 |
| JSON Deserialize 操作 |
| 操作(数据转换) |
| JSON Serialize 操作 |
| 操作(数据转换) |
| Kafka 接收器 |
| sink |
| Kafka 源 |
| 源 |
| Kafka 主题名称过滤器操作 |
| 操作(数据转换) |
| 日志接收器(用于开发和测试目的) |
| sink |
| MariaDB sink |
| sink |
| 掩码字段操作 |
| 操作(数据转换) |
| Message TimeStamp Router 操作 |
| 操作(路由器) |
| MongoDB sink |
| sink |
| MongoDB 源 |
| 源 |
| MySQL sink |
| sink |
| PostgreSQL sink |
| sink |
| predicate 过滤器操作 |
| 操作(router/filter) |
| protobuf Deserialize 操作 |
| 操作(数据转换) |
| protobuf Serialize 操作 |
| 操作(数据转换) |
| 正则表达式路由器操作 |
| 操作(路由器) |
| 替换字段操作 |
| 操作 |
| Salesforce Create |
| sink |
| Salesforce Delete |
| sink |
| Salesforce 更新 |
| sink |
| SFTP sink |
| sink |
| SFTP 源 |
| 源 |
| Slack source |
| 源 |
| SQL Server 数据库接收器 |
| sink |
| Telegram 源 |
| 源 |
| throttle 操作 |
| 操作 |
| 计时器源(用于开发和测试目的) |
| 源 |
| 时间戳路由器操作 |
| 操作(路由器) |
| Key 操作的值 |
| 操作(数据转换) |
4.6. Camel K 已知问题
以下已知问题适用于 Camel K:
ENTESB-15306 - Camel K 和 Fuse Online 之间的 CRD 冲突
如果同一 OpenShift 集群中安装了旧版本的 Camel K,请从 OperatorHub 安装 Camel K 会失败,因为自定义资源定义冲突。例如,这包括之前在 Fuse Online 中提供的较旧版本的 Camel K。
作为临时解决方案,您可以在不同的 OpenShift 集群中安装 Camel K,或者在安装 Camel K 前输入以下命令:
$ oc get crds -l app=camel-k -o json | oc delete -f -
ENTESB-15858 - 添加了在本地或作为容器镜像打包和运行 Camel 集成的能力
Camel K 目前没有打包并运行 Camel 集成,或作为容器镜像进行打包和运行,并且只有社区支持。
如需了解更多详细信息,请参阅 Apache Camel K 社区。
ENTESB-16477 - Unable to download jira client dependency with productized build
使用 Camel K operator 时,集成无法找到 jira 客户端的依赖项。解决办法是手动添加 atlassian 存储库。
apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
labels:
app: camel-k
name: camel-k
spec:
configuration:
- type: repository
value: <atlassian repo here>ENTESB-17033 - Camel-K ElasticsearchComponent options ignored
在配置 Elasticsearch 组件时,Camel K ElasticsearchComponent 选项会被忽略。这些临时解决方案是使用 Elasticsearch 组件时添加 getContext ().setAutowiredEnabled (false)。
ENTESB-17061 - 无法运行带有非 admin 用户的 mongo-db-source kamelet 路由 - Failed to start route mongodb-source-1,因为 null
无法使用非管理员用户凭证运行 mongo-db-source kamelet 路由。组件的某些部分需要 admin 凭证,因此无法以非管理员用户身份运行路由。
4.7. Camel K Fixed 问题
以下小节列出了 Red Hat Integration 中已解决的问题 - Camel K 1.8.1.redhat-00024。
4.7.1. Camel K 1.8.1.redhat-00024 中的功能请求
下表列出了 Camel K 1.8.1.redhat-00024 中的功能请求。
表 4.2. Camel K 1.8.1.redhat-00024 增强
| 问题 | 描述 |
|---|---|
| Camel K - Kamelet for Red Hat Ceph Storage Object (S3) | |
| 创建 JIRA Sink kamelets |
4.7.2. Camel K 1.8.1.redhat-00024 中的增强功能
下表列出了 Camel K 1.8.1.redhat-00024 中的增强功能。
表 4.3. Camel K 1.8.1.redhat-00024 增强
| 问题 | 描述 |
|---|---|
| 将 Camel K 产品化版本与实际产品版本同步 | |
| 考虑将 Camel-K operator 迁移到 ALL-NAMESPACES | |
| 将 operator 发布到 1.x 和 1.6.x 频道进行转发 | |
| 为 camel-kamelet-utils 添加单元测试 |
4.7.3. Camel K 1.8.1.redhat-00024 中解决的错误
下表列出了 Camel K 1.8.1.redhat-00024 中已解决的错误。
表 4.4. Camel K 1.8.1.redhat-00024 解决的错误
| 问题 | 描述 |
|---|---|
| CVE-2021-22135 elasticsearch: Document disclosure flaw in the Elasticsearch recommendationser [rhint-camel-k-1] | |
| CVE-2021-29427 gradle: 存储库内容过滤器在 Settings pluginManagement [rhint-camel-k-1] 中无法正常工作 | |
| CVE-2021-28169 jetty: 对 ConcatServlet 和 WelcomeFilter 的请求可以访问 WEB-INF 目录 [rhint-camel-k-1] 中的受保护资源 | |
| CVE-2021-34428 jetty: SessionListener 可防止会话被无效的破坏退出 [rhint-camel-k-1] | |
| CVE-2021-3642 wildfly-elytron:ScramServer [rhint-camel-k-1] 中可能存在的时间攻击 | |
| Kamelet 有-header-filter-action 因上游的不同。 | |
| Camel K 镜像没有为 golang 代码创建 PST 清单 | |
| Camel K 1.6.0 Sources 包含多个缺陷(技术预览 + 错误版本) | |
| AWS Redshift Sink kamelet dependency mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.5 missing in bom | |
| Salesforce Source kamelet: notifyForFields 不可用 | |
| AWS S3 Streaming upload kamelet: streamingUploadMode 可能可以被配置 | |
| CVE-2022-30973 tika-core:CVE-2022-30126 [rhint-camel-k-1] 不完整 | |
| 将测试升级到频道 1.8.x 失败,并显示"找到2替换链" | |
| action kamelet 测试在 Unsupported 字段中失败: unmarshalTypeName | |
| 使用 kamel install 时,默认 maven 存储库会被覆盖 | |
| Camel-K 1.8.1.CK1 未对齐版本 | |
| 无法使用原生模式运行 kameletBinding | |
| MRRC 中的 snakeyaml 依赖项错误 | |
| Elasticsearch 源 Kamelet 无法用于基本身份验证 |
第 5 章 Camel Spring Boot 发行注记
5.1. Camel Spring Boot 功能
此 Camel Spring Boot 发行版本引入了对 Spring Boot 的 Camel 支持,它为许多 Camel 组件提供 Camel 和入门器的自动配置。Camel 上下文的提示自动配置会在 Spring 上下文中自动检测 Camel 路由,并将密钥 Camel 实用程序(如制作者模板、消费者模板和类型转换器)注册为 Bean。
5.2. 支持的平台、配置、数据库和扩展
- 有关 Camel Spring Boot 版本 3.14 中支持的平台、配置和数据库的详情,请查看客户门户网站中的支持的配置页面(需要登录)。
- 有关 Red Hat Camel Spring Boot 扩展列表,请参阅 Camel Spring Boot Reference. (需要登录)。
5.3. 重要备注
Camel Spring Boot 组件的文档包括在 Camel Spring Boot 参考 中。有关其他 Camel Spring Boot 组件的文档将添加到此参考指南中。
5.4. 其他资源
第 6 章 Service Registry 发行注记
Service Registry 2.3 作为正式发行版本提供。Service Registry 是标准事件模式和 API 设计的数据存储,它基于 Apicurio Registry 开源社区项目。
您可以使用 Service Registry 通过 Web 控制台、REST API、Maven 插件或 Java 客户端管理和共享数据的结构。例如,客户端应用程序可以动态地向 Service Registry 或从 Service Registry 推送或拉取最新的架构更新,而无需重新部署。您还可以使用 Service Registry 创建可选规则来管理 registry 内容随着时间的演进方式。这些规则包括内容验证和后向或转发模式或 API 版本的兼容性。
6.1. Service Registry 安装选项
您可以使用以下数据存储选项之一在 OpenShift 上安装 Service Registry:
- PostgreSQL 数据库
- AMQ Streams
如需了解更多详细信息,请参阅在 OpenShift 上安装和部署 Service Registry。
6.2. Service Registry 平台组件版本
Service Registry 2.3 支持以下版本:
- OpenShift Container Platform 4.6 - 4.11
- PostgreSQL 12 - 15
- AMQ Streams 2.1, 2.2
- Red Hat Single Sign-On (RH-SSO) 7.6
- OpenJDK 11
6.3. Service Registry 新功能
- Service Registry 身份验证和授权
- 扩展基于角色的授权 - 现在您可以在 Service Registry 中配置基于角色的访问控制,以及之前在 RH-SSO 中配置基于角色的访问控制。如果在 Service Registry 应用程序中启用了基于角色的访问控制,您可以使用 Web 控制台或 REST API 控制访问。
- 扩展基于所有者的授权 - 现在您可以在 artifact-group 级别以及工件级别启用基于所有者的授权选项。
- 匿名读取访问 - 当启用匿名读取访问选项时,未经身份验证的(匿名)用户对所有工件具有只读访问权限。
- 经过身份验证的读取访问权限 - 当启用了经过身份验证的读取访问权限选项时,任何经过身份验证的用户都对所有工件具有只读访问权限,即使用户没有被授予任何 Service Registry 角色。
- HTTP 基本身份验证 - 启用此选项时,用户或客户端应用程序可以使用 HTTP 基本身份验证来访问服务 Registry。
- Kafka 存储的自定义 TLS 证书 - 在使用 Kafka 进行存储时,用户现在可以使用自定义 TLS 证书安全地连接到 Kafka。
- 更改工件所有者 - 管理员或工件所有者可以使用 REST API 或 Web 控制台更改特定架构或 API 工件的所有者。
- 操作和监控改进
- 审计日志记录 - 对 Service Registry 数据的任何更改都会导致审计日志条目。
- Prometheus metrics - 指标以 Prometheus 格式公开,以便在监控中使用。
- Sentry integration - 可选与 Sentry 1.x 集成。
- Operator 的改进
-
自定义环境变量 - 现在您可以在
ApicurioRegistry自定义资源中设置任意环境变量。这些变量使用Deployment资源应用到 Service Registry。 - 对 PodDisruptionBudget 的支持 - 此资源会自动创建,以确保最多一个副本不可用。
- 支持 NetworkPolicy - Service Registry Operator 为端口 8080 创建入口网络策略。
-
自定义环境变量 - 现在您可以在
- 工件引用
- 现在,工件可以引用 Service Registry 中的其他工件。许多支持的工件类型都允许从一个文件引用另一个文件。例如,OpenAPI 文件可能具有具有引用另一文件中定义的 JSON 模式的属性的数据类型。通常,这些引用具有特定于工件类型的语法。现在,您可以使用 REST API 创建映射,以便将特定于类型的引用解析为 Service Registry 中注册的工件。
- Service Registry 实例的动态全局配置
- Service Registry 有许多全局配置选项,通常在部署时设置。这些选项的子集现在可以在 Service Registry 实例的运行时配置。您可以使用 REST API 或 Web 控制台在运行时管理这些选项。例如,这些选项包括基于所有者的授权、匿名读取访问权限以及经过身份验证的读取访问权限。
- 从 URL 上传工件
- 现在,除了从文件中支持的上传外,您还可以从 URL 上传模式或 API 工件。您可以使用 Service Registry web 控制台或 REST API 上传。
- Web 控制台的改进
-
导入和导出 Service Registry 数据 - 管理员用户可以使用 Web 控制台导出
.zip文件中的所有 Service Registry 数据,以及之前使用 REST API。然后,他们可以将此.zip文件导入到不同的 Service Registry 部署中。 - 完全支持工件属性 - Service Registry 中的工件可以具有用户定义的和可编辑的元数据,如名称、描述、标签(简单关键字列表)和属性(名称/值对)。除了之前使用 REST API 外,还增强了 Web 控制台来支持显示和编辑属性。
- AsyncAPI 工件的文档 - AsyncAPI 工件现在支持工件详情页面上的 Documentation 标签页。此选项卡显示从 AsyncAPI 内容生成的人类可读文档。此功能以前仅适用于 OpenAPI 工件。
- 为 JSON 格式的工件类型显示 JSON 作为 YAML 的选项,工件详情页面上的 内容选项卡 现在支持在 JSON 和 YAML 格式间切换。
-
导入和导出 Service Registry 数据 - 管理员用户可以使用 Web 控制台导出
- REST API 改进
-
改进了 /users/me 端点 - Service Registry 核心 REST API 具有
/users/me端点,用于返回有关当前经过身份验证的用户的信息。您可以使用此端点来检查用户的分配角色,并确定其功能。 - 更新了对 Confluent Compatibility API 的支持 - Service Registry 现在支持 Confluent Schema Registry API 版本 6。
-
改进了 /users/me 端点 - Service Registry 核心 REST API 具有
Service Registry 用户文档和示例
文档库已更新,带有 2.3 版本中提供的新功能:
开源演示应用程序也已更新:
6.4. Service Registry 已弃用的功能
- Service Registry 版本 1.x
- Service Registry 版本 1.x 在版本 2.0 中已弃用,且不再被支持。如需了解更多详细信息,请参阅 Red Hat Application Services 产品更新和支持政策。
6.5. 升级并迁移 Service Registry 部署
6.5.1. 在 OpenShift 中升级 Service Registry 2.0 部署
您可以从 OpenShift 4.9 上的 Service Registry 2.0.3 升级到 OpenShift 4.11 上的 Service Registry 2.3.0。您必须同时升级 Service Registry 和 OpenShift 版本,并一次升级 OpenShift 一个次版本。
先决条件
- 您已在 OpenShift 4.9 上安装 Service Registry 2.0.3。
流程
- 在 OpenShift Container Platform Web 控制台中,点 Administration,然后单击 Cluster Settings。
-
点 Channel 字段旁的铅笔图标,然后选择下一个次
候选版本(例如,从stable-4.9改为candidate-4.10)。 - 点 Save,然后 Update,并等待升级完成。
-
如果 OpenShift 版本小于 4.11,请重复步骤 2 和 3,然后选择
candidate-4.11。 - 点 Operators > Installed Operators > Red Hat Integration - Service Registry。
-
确保将 Update channel 设置为
2.x。 -
如果 Update approval 设为 Automatic,则应在设置
2.x频道后批准并立即安装升级。 - 如果 Update approval 设为 Manual,点 Install。
- 等待 Operator 部署并部署了 Service Registry pod。
- 验证您的 Service Registry 系统是否已启动并在运行。
其他资源
- 有关如何在 OpenShift Container Platform Web 控制台中设置 Operator 更新频道的详情,请参阅为 Operator 更改更新频道。
6.5.2. 在 OpenShift 上迁移 Service Registry 1.1 部署
有关将 Service Registry 版本 1.1 部署迁移到版本 2.x 的详情,请参阅迁移 Service Registry 部署。
6.6. Service Registry 解决了的问题
表 6.1. Service Registry 内核已解决的问题
| 问题 | 描述 |
|---|---|
| 内核 v1 兼容性的 REST API 端点不受身份验证正确保护。 | |
| Web 控制台错误地重定向到 HTTP 而不是 HTTPS。 | |
|
Service Registry 在上传新工件时抛出 | |
| 限制的兼容性层无法用于 JSON Schema 工件。 | |
|
在查询 | |
| 限制兼容性层的 schema DTO 不完全兼容。 | |
| Web 控制台没有正确地遵循 disable 角色功能。 | |
| Confluent 兼容性 API v6 不会返回工件。 | |
|
传递 | |
|
Web 控制台显示 | |
|
| |
| 传输兼容性规则可能会给出假的正状态。 |
6.7. Service Registry 解决了 CVE
表 6.2. Service Registry 解决了 CVE 报告的安全漏洞问题。
| 问题 | 描述 |
|---|---|
| CVE-2022-25858 terser: 安全地使用正则表达式会导致 ReDoS。 | |
| CVE-2022-37734 graphql-java: DoS by malicious 查询。 | |
| CVE-2022-25857 snakeyaml: DoS,因为集合缺少嵌套深度限制。 | |
| CVE-2022-31129 moment: 低效的解析算法,从而导致 DoS。 | |
| CVE-2022-25647 com.google.code.gson-gson: Deserialization of untrusted data。 | |
|
CVE-2022-24773 node-forge: Signature 验证 leniency in check | |
| CVE-2022-24772 node-forge: 签名验证无法检查尾部垃圾字节可能会导致签名伪造。 | |
|
CVE-2022-24771 node-forge: Signature 验证 leniency in check | |
| CVE-2022-26520 jdbc-postgresql: Arbitrary 文件写入漏洞。 | |
|
CVE-2022-0536 follow-redirects: 根据 | |
| CVE-2022-0235 node-fetch: 将敏感信息暴露给未经授权的参与者。 | |
| CVE-2022-23647 prismjs: Improperly escaped 输出允许 XSS 漏洞。 | |
| CVE-2022-0981 quarkus: Privilege escalation vulnerability with RestEasy Reactive scope leakage in Quarkus。 | |
| CVE-2022-21724 quarkus-jdbc-postgresql-deployment: 在提供插件类时取消检查类实例化。 | |
| CVE-2021-22569 protobuf-java: 在解析二进制数据的步骤中 Potential DoS。 | |
| CVE-2021-41269 cron-utils: 模板注入会导致未经身份验证的远程代码执行安全漏洞。 | |
|
CVE-2021-37136 netty-codec: | |
|
CVE-2021-37137 netty-codec: |
6.8. 已知的 Service Registry 问题
Service Registry 内核已知问题
registry-2991 - 在较慢的机器上,kafkasql 存储无法为现有信息做好准备
当 Service Registry 在较慢的计算节点上使用 Kafka 存储部署时,当 Kafka 消费者线程启动时,内部 H2 数据库可能无法就绪。在这种情况下,Service Registry 在内部数据库准备好存储信息之前可能会消耗 Kafka 主题中的现有信息。这种差异会导致堆栈追踪,Service Registry 节点可能无法启动。
解决方法是在 Service Registry 中增加 Kafka 消息消费者线程的启动延迟。您可以增加 REGISTRY_KAFKASQL_CONSUMER_STARTUPLAG 环境变量的值,默认设为 100 ms。
IPT-814 - Service Registry logout 功能与 RH-SSO 7.6 不兼容
在 RH-SSO 7.6 中,与 logout 端点一起使用的 redirect_uri 参数已弃用。如需了解更多详细信息,请参阅 RH-SSO 7.6 升级指南。由于此弃用,当使用 RH-SSO Operator 保护 Service Registry 时,点 Logout 按钮会显示 Invalid parameter: redirect_uri 错误。
有关临时解决方案,请参阅 https://access.redhat.com/solutions/6980926。
IPT-701 - CVE-2022-23221 H2 允许通过 JNDI 从远程服务器载入自定义类
当服务 Registry 数据存储在 AMQ Streams 中时,H2 数据库控制台允许使用 JDBC URL 执行任意代码。Service Registry 默认不容易受到攻击,且需要恶意的配置更改。
Service Registry Operator 已知问题
operator-42 - OpenShift 路由的自动生成可能会使用错误的基本主机值
如果指定了多个 routerCanonicalHostname 值,Service Registry OpenShift 路由的自动生成可能会使用错误的基础主机值。
第 7 章 Red Hat Integration Operators
Red Hat Integration 2022.q3 引入了 Red Hat Integration Operator 1.3。
Red Hat Integration 提供了 Operator,用于在 OpenShift 中自动部署 Red Hat Integration 组件。您可以使用 Red Hat Integration Operator 来管理这些 Operator。
另外,您还可以单独管理每个组件 Operator。本节介绍了 Operator,并提供了有关如何使用 Operator 部署 Red Hat Integration 组件的详细信息的链接。
7.1. Operator 是什么
Operator 是一种打包、部署和管理 Kubernetes 应用程序的方法。从概念上讲,Operator 会收集人类操作知识,并在软件中实现,以便更方便地与用户分享来实现一些常见的、复杂的任务。
在 OpenShift Container Platform 4.x 中,Operator Lifecycle Manager (OLM) 可帮助用户安装、更新和管理所有 Operator 以及在用户集群中运行的关联服务的生命周期。Operator Lifecycle Manager 是 Operator Framework 的一部分,后者是一个开源工具包,用于以有效、自动化且可扩展的方式管理 Kubernetes 原生应用程序(Operator)。
OLM 默认在 OpenShift Container Platform 4.x 中运行,辅助集群管理员对集群上运行的 Operator 进行安装、升级和授予访问权。OpenShift Container Platform Web 控制台提供一些管理界面,供集群管理员安装 Operator,以及为特定项目授权以便使用集群上的可用 Operator 目录。
OperatorHub 是 OpenShift 集群管理员用于发现、安装和升级 Operator 的图形界面。只需点一个按钮,即可从 OperatorHub 拉取并在 OperatorHub 中安装,并由 OLM 管理,为工程团队在开发、测试和生产环境中自助管理软件。
其他资源
- 如需有关 Operator 的更多信息,请参阅 OpenShift 文档。
7.2. Red Hat Integration 组件 Operator
您可以单独安装和升级每个 Red Hat Integration 组件 Operator,例如使用 3scale Operator、Camel K Operator 等。
7.2.1. 3scale Operator
7.2.2. AMQ Operators
7.2.3. Camel K Operator
7.2.4. Fuse Operators
7.2.5. Service Registry Operator
7.3. Red Hat Integration Operator (已弃用)
您可以使用 Red Hat Integration Operator 1.3 安装和升级多个 Red Hat Integration 组件 Operator:
- 3scale
- 3scale APIcast
- AMQ Broker
- AMQ Interconnect
- AMQ Streams
- API Designer
- Camel K
- Fuse 控制台
- Fuse Online
- Service Registry
Red Hat Integration Operator 已被弃用,并将在以后的版本中删除。它可从 OpenShift 4.6 中的 OperatorHub 向 4.10 提供。独立的 Red Hat Integration 组件 Operator 将继续被支持,您可以单独安装。
7.3.1. 支持的组件
在使用 Red Hat Integration Operator 1.3 安装 Operator 前,请检查组件发行注记中的更新。支持的版本发行注记描述了任何其他升级要求。
- Red Hat 3scale API Management 2.10 On-premises 发行注记
- Red Hat AMQ Broker 7.8 发行注记
- Red Hat AMQ Interconnect 1.10 发行注记
- OpenShift 上的 Red Hat AMQ Streams 2.0 发行注记
- Red Hat Fuse 7.10 发行注记 (Fuse 和 API Designer)
- Red Hat Integration 2021.Q3 发行注记 (Service Registry 2.0 发行注记)
- Red Hat Integration 2021.Q4 发行注记 (Camel K 发行注记)
AMQ Streams 新的 API 版本
Red Hat Integration Operator 1.3 为 AMQ Streams 2.0 安装 Operator。
在升级到 AMQ Streams 版本 1.8 或更高版本前,您必须将自定义资源升级到使用 API 版本 v1beta2。
AMQ Streams 1.7 引入了 v1beta2 API 版本,它更新 AMQ Streams 自定义资源的 schema。旧的 API 版本现已弃用。升级到 AMQ Streams 1.7 后,在升级到 AMQ Streams 2.0 之前,您必须将自定义资源升级到使用 API 版本 v1beta2。
如果您要从 1.7 版本之前的 AMQ Streams 版本升级:
- 先升级到 AMQ Streams 1.7
- 将自定义资源转换为 v1beta2
- 升级到 AMQ Streams 2.0
如需更多信息,请参阅以下文档:
如果自定义资源和 CRD 没有转换为 v1beta2 版本,则在集群中将 AMQ Streams Operator 升级到版本 2.0 将失败。升级会一直处于 Pending 状态。如果发生这种情况,请执行以下操作:
- 执行 Red Hat 解决方案中针对 待处理的集群 operator 升级 的步骤。
- 将 Integration Operator 扩展至零,然后重新扩展到一个,以触发 AMQ Streams 2.0 Operator 的安装。
Service Registry 2.0 迁移
Red Hat Integration Operator 安装 Service Registry 2.0。
Service Registry 2.0 不替换 Service Registry 1.x 安装,需要手动卸载。
有关从 Service Registry 版本 1.x 迁移到 2.0 的详情,请参考 Service Registry 2.0 发行注记。
7.3.2. 支持生命周期
要保留在受支持的配置中,您必须部署最新的 Red Hat Integration Operator 版本。每个 Red Hat Integration Operator 发行版本只支持 3 个月。
7.3.3. 修复的问题
Red Hat Integration Operator 1.3 没有修复的问题。
其他资源
- 有关管理多个 Red Hat Integration 组件 Operator 的详情,请参阅在 OpenShift 上安装 Red Hat Integration Operator。