我知道 Camel 支持 Scala DSL。除此之外
对于基于 Camel 的项目,用 Scala 完全替换 Java(语言)是否现实?
已知存在哪些已知问题?
这些问题存在哪些解决方法(使用 Java 除外)?
我主要是在寻找更少的样板代码。
我知道 Camel 支持 Scala DSL。除此之外
对于基于 Camel 的项目,用 Scala 完全替换 Java(语言)是否现实?
已知存在哪些已知问题?
这些问题存在哪些解决方法(使用 Java 除外)?
我主要是在寻找更少的样板代码。
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 的,我能想到的唯一问题是库中的一个可修复的错误。
与此同时,已经为 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"
.
从那时起(2010-2011 年),现在(2016 年 9 月)最近发起了一项名为 Akka Streams Integration 的计划,代号为Alpakka。
我们相信 Akka Streams 可以成为构建Apache Camel的现代替代品的工具。这不会在一夜之间自行发生,这是呼吁社区加入我们执行这一使命的武器。Camel 最大的资产是其丰富的端点组件集。我们希望看到为 Akka Streams 开发类似的端点。