搜索

第 4 章 在 JBoss EAP 独立上升级 Fuse 应用程序

download PDF

在 JBoss EAP 上升级 Fuse 应用程序:

  • 您应该考虑 Apache Camel 更新,如 第 4.1 节 “Camel 迁移注意事项” 所述。
  • 您必须更新 Fuse 项目的 Maven 依赖项,以确保您使用正确的 Fuse 版本。

    通常,您可以使用 Maven 来构建 Fuse 应用程序。Maven 是 Apache 的免费开源构建工具。Maven 配置在 Fuse 应用程序项目的 pom.xml 文件中定义。在构建 Fuse 项目时,Maven 会搜索外部存储库并下载所需的工件。您可以将 Fuse Bill of Materials (BOM)的依赖关系添加到 pom.xml 文件中,以便 Maven 构建过程会获取正确的 Fuse 支持的工件集合。

    以下小节提供有关 Maven 依赖项的信息,以及如何在 Fuse 项目中更新它们。

  • 您必须更新 Fuse 项目的 Maven 依赖项,以确保您使用 Java EE 依赖项的升级版本,如 第 4.4 节 “升级 Java EE 依赖项” 所述。

4.1. Camel 迁移注意事项

Red Hat Fuse 使用 Apache Camel 2.23。升级到 Fuse 7.8 时,您应该考虑对 Camel 2.22 和 2.23 的以下更新。

Camel 2.22 更新

  • Camel 已从 Spring Boot v1 升级到 v2,因此不再支持 v1。
  • 升级到 Spring Framework 5。Camel 应该与 Spring 4.3.x 一起工作,但转发 Spring 5.x 将在以后的版本中是 Spring 5.x 的最低 Spring 版本。
  • 升级到 Karaf 4.2。您可以在 Karaf 4.1 上运行 Camel,但在此发行版本中,我们仅官方支持 Karaf 4.2。
  • 使用 toD DSL 优化,为可能出现的组件重复使用端点和制作者。例如,基于 HTTP 的组件将重复使用发送到同一主机的动态 URI 的生成者(HTTP 客户端)。
  • 现在,具有 read-lock idempotent/idempotent-changed 的 File2 使用者可以被配置为延迟发行任务,以便在处理过程中使用文件扩展窗口,该文件可以在带有共享幂等存储库的主动/主动集群设置中可用,以确保其他节点无法快速将已处理的文件视为可处理的文件(仅当您具有 readLockRemoveOnCommit=true 时)。
  • 允许在 request/reply 模式中在 Netty4 producer 上插件自定义请求/回复关联 ID 管理器。author 组件现在默认使用扩展模式来支持大于 140 个字符的 12 月
  • REST DSL 生成者现在支持使用 endpointProperties 在 REST 配置中配置。
  • Kafka 组件现在支持 HeaderFilterStrategy 插件自定义实现,以控制 Camel 和 Kafka 信息之间的标头映射。
  • REST DSL 现在支持客户端请求验证,以验证 Content-Type/Accept 标头是否可以用于 REST 服务。
  • Camel 现在有一个 Service Registry SPI,它允许您使用 Camel 实现或 Spring Cloud 将路由注册到服务 registry (如 consul、etcd 或 zookeeper)。
  • SEDA 组件现在的默认队列大小为 1000,而不是无限。
  • 解决了以下值得注意的问题:

    • 修复了 camel-cxf consumer 的 CXF continuation 超时问题,可能会导致消费者返回带有数据的响应,而不是向调用 SOAP 客户端触发超时。
    • 修复了 camel-cxf consumer 在使用强大的单向操作时,不会发布 UoW。
    • 修复了使用 AdviceWith,并使用 weave onException 等方法无法正常工作。
    • 修复了并行处理和流模式中的 Splitter 可能会阻断,而当迭代消息正文()ator 在第一个调用的 next ()方法调用中抛出异常时。
    • 修复了 Kafka 使用者,如果 autoCommitEnable=false,则不会自动提交。
    • 修复了文件消费者默认使用 markerFile 作为 read-lock,这应该为 none。
    • 修复了使用带有 Kafka 的手动提交以提供当前的记录偏移而不是之前(第一个为 -1 )。
    • 修复了 Java DSL 中的基于内容路由器的问题可能无法解析 when predicates 中的属性占位符。

Camel 2.23 更新

  • 升级到 Spring Boot 2.1。
  • 现在,可以使用 spring-boot 自动配置来配置其他组件级选项。这些选项包含在 spring-boot 组件元数据 JSON 文件描述符中,以获得工具协助。
  • 添加了一个文档部分,其中包含所有组件、数据格式和语言的所有 Spring Boot 自动配置选项。
  • 现在,所有 Camel Spring Boot starter JARs 都会在其 JARs 中包含 META-INF/spring-autoconfigure-metadata.properties 文件,以优化 Spring Boot 自动配置。
  • Throttler 现在支持基于动态表达式的关联组,以便您可以将消息分组到不同的节流集中。
  • Hystrix EIP 现在允许 Camel 的错误处理程序继承,以便在您启用了带有红色错误处理时再次重试整个 Hystrix EIP 块。
  • SQL 和 ElSql 用户现在支持路由格式的动态查询参数。请注意,这个功能仅限于使用简单表达式调用 Bean。
  • swagger-restdsl maven 插件现在支持从 Swagger 规格文件中生成 DTO 模型类。
  • 解决了以下值得注意的问题:

    • 已修复 Aggregator2,使其不会传播用于强制完成所有组的控制标头,因此当路由期间使用另一个聚合器 EIP 时不会再次发生。
    • 修复了错误处理程序中被重新传送的 Tracer 无法正常工作。
    • XML 文档的内置类型转换器可能会输出将错误解析到 stdout,现在已修复为使用日志记录 API 的输出。
    • 修复了使用 charset 选项(如果消息正文基于流传输)的 SFTP 编写文件无法正常工作。
    • 修复了当通过多个路由的路由时,不会重复使用 Zipkin root id,以便将它们分组到一个父范围中。
    • 修复了在主机名包含带有数字的 IP 地址时,使用 HTTP 端点时优化为D。
    • 修复了在通过临时队列进行请求/回复以及使用手动确认模式的 RabbitMQ 的问题。它不会确认临时队列(需要尽可能发出请求/回复)。
    • 修复了在 Allow 标头中为 OPTIONS 请求返回所有允许的 HTTP 动词(如使用 rest-dsl 时)的各种 HTTP 消费者组件。
    • 修复了 FluentProducerTemplate 的 thread-safety 问题。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.