让我们假设,我有使用Akka的应用程序(可能与Alpakka和/或Lagom一起使用)。
我还能从iPaaS (如红帽JBoss引信)中获益吗?
如果是,那有什么好处呢?如果不是,那如何被称为演员系统的一部分,它是iPaaS的替代方案?
发布于 2017-10-26 03:28:31
按照定义,actor system或演员模型只是并发和异步编程的计算模型。这个计算模型本身并不能解决任何实际问题,比如面向对象或函数式编程不能解决问题。如果您想应用参与者系统来解决集成问题,最重要的是连接到各种系统并支持被记录为企业集成模式 (EIP)的最佳实践。
如果我的理解是正确的,Akka本身只是一个角色模型的实现,并且没有提供各种各样的开箱即用的连接器。Akka过去依赖于Apache模块(Apache是加载在JBoss Fuse中的核心集成引擎),但最近用Alpakka取代了它的功能。所以你真正需要比较的是Alpakka和Apache Camel。
就连接性而言,Alpakka似乎仍在开发中;目前,它只提供了大约20多个连接器。
https://developer.lightbend.com/docs/alpakka/0.14/connectors.html
另一方面,Apache是在这方面建立的框架,280+连接器(= "components")已经可用。
https://github.com/apache/camel/blob/camel-2.20.0/components/readme.adoc
当涉及到EIP支持时,两者都应该涵盖大多数模式。然而,我想在这里强调的一件事是,对于Alpakka来说,EIP支持似乎更简单;它可能很简单,但基本上您仍然需要找到使用Akka流DSL实现模式的方法,如下所示:
https://developer.lightbend.com/docs/alpakka/0.14/patterns.html
相反,Apache Camel为使用EIP提供了内置的DSL,这使得模式的使用更加直观和直观:
https://github.com/apache/camel/blob/camel-2.20.0/camel-core/readme-eip.adoc
https://github.com/apache/camel/blob/camel-2.20.0/camel-core/src/main/docs/eips/split-eip.adoc
提供所有信息,这取决于您为集成解决方案选择了哪些技术。我确信还有其他方面需要考虑,例如对特定语言的首选项(Scala相对于Java)等等。而且,由于Alpakka是一个相对较新的框架,它将不断发展,这种比较在未来可能不成立。(同时,Apache也在积极发展。)
注意:我是Apache的贡献者,所以这个答案可能偏向Apache。但我试着尽可能真实客观地写出来。
https://stackoverflow.com/questions/46941925
复制相似问题