6

我知道 Camel 支持 Scala DSL。除此之外

  • 对于基于 Camel 的项目,用 Scala 完全替换 Java(语言)是否现实?

  • 已知存在哪些已知问题?

  • 这些问题存在哪些解决方法(使用 Java 除外)?

我主要是在寻找更少的样板代码。

4

3 回答 3

8

Akka 提供稳定的 Scala 惯用的Camel 集成

akka-camel 模块允许演员、无类型演员和有类型演员通过各种协议和 API 接收和发送消息。本节简要概述了 akka-camel 模块背后的一般思想,其余部分将详细介绍。除了原生的 Scala 和 Java Actor API 之外,Actor 现在可以通过大量的协议和 API 与其他系统交换消息,例如 HTTP、SOAP、TCP、FTP、SMTP 或 JMS,仅举几例。目前,支持大约 80 种协议和 API。

除此之外,我确信由于良好的互操作性,这种替换是可能的,并且几乎没有任何 Java 特有的 Scala 特定问题。例如,用于向 Camel 端点发布/消费的 Akka Actors 是基于 java.util.concurrency 的,我能想到的唯一问题是库中的一个可修复的错误。

于 2010-11-04T21:06:51.463 回答
1

与此同时,已经为 Camel 开发了一个相对简单的 Scala DSL它应该具有 Java DSL 的功能

要确定它是否适合您,请考虑:
- IDE对语言的支持质量
- Scala 语言的复杂性
- Scala/Java 语言的流行度
- DSL 扩展的可能性。在 Scala 中,应该可以(通过一些 Scala 魔法)扩展 DSL(添加额外的 DSL 元素)

如果您决定尝试一下,如果您与 Apache Camel 社区分享您对以下内容的印象,那就太好了: code readability, code maintainability, code efficiency, developer satisfaction, code size, "man-days".

于 2011-11-04T22:15:34.553 回答
0

从那时起(2010-2011 年),现在(2016 年 9 月)最近发起了一项名为 Akka Streams Integration 的计划,代号为Alpakka

我们相信 Akka Streams 可以成为构建Apache Camel的现代替代品的工具。这不会在一夜之间自行发生,这是呼吁社区加入我们执行这一使命的武器。Camel 最大的资产是其丰富的端点组件集。我们希望看到为 Akka Streams 开发类似的端点。

见“ akka/akka-stream-contrib”。

于 2016-09-18T17:05:04.497 回答