When to use Spring Integration vs. Camel?

后端 未结 11 2062
南笙
南笙 2020-12-02 04:03

As a seasoned Spring user I was assuming that Spring Integration would make the most sense in a recent project requiring some (JMS) messaging capabilities (more details). Af

相关标签:
11条回答
  • 2020-12-02 04:51

    Actually, I would say FTP has graduated its incubation period. You can do a simple search on SI forums/JIRA to see what new features were implemented and bugs that were fixed. From various chatter it seems like there is already some production usage out of it, so I would suggest to give it a second look and of course communicate your concerns to us via

    http://forum.springsource.org/forumdisplay.php?42-Integration
    https://jira.springsource.org/browse/INT

    Cheers Oleg

    Disclaimer: I am Spring Integration committer

    0 讨论(0)
  • 2020-12-02 04:52

    I only recommend Spring Integration if you already have got a Spring project and you have just to add some "basic" integration using File, FTP, JMS, JDBC, and so on.

    Apache Camel has two main advantages:

    1. Many, many more technologies are supported.
    2. Besides, a (good) XML DSL, there are fluent APIs for Java, Groovy and Scala.

    Because Apache Camel has very good integration with Spring, I would even use it instead of Spring Integration in most Spring projects.

    If you need more details, you can read my experiences in my blog post: Spoilt for Choice: Which Integration Framework to use – Spring Integration, Mule ESB or Apache Camel?

    0 讨论(0)
  • 2020-12-02 04:53

    Apache Camel is a very good framework and very complete too. But if your application uses spring, my personal advice is to use Spring Integration.

    Spring Integration is the integration EIP complaint framework of Spring-Source ecosystem. It has excellent integration with the ecosystem: Spring boot, Batch, XD; even the core uses same abstraction starting from Spring Framework 4. Some of the messaging abstraction were moved in the framework, as proof that the basic messaging abstraction of Spring Integration is very strong. Now Spring framework for instance use the messaging abstraction for Spring Web, web socket support.

    Another good thing in a Spring application with Spring integration respect to use Apache Camel is that with Spring integration, you can use only one Application Context. Remember that the Camel Context is a Spring context. if you have the chance of use a new Spring version, I suggest to use Spring Integration Java DSL for configuration. I use it on my new projects, and it feels more readable and clear. I hope that this reflection can help you for the your evaluations.

    0 讨论(0)
  • 2020-12-02 04:55

    If your current application is in Spring and require features which are supported by Spring Integration of EIP then Spring Integration is the best option else require more third party supports/protocols/file formats etc

    0 讨论(0)
  • 2020-12-02 04:58

    Most comparisons of Camel and SI that I've seen don't take the following into account:

    1.) The effect that Spring Boot has had on developer productivity for Spring Integration

    2.) The effect of Spring XD has had on making Spring Integration applications available with no code compilation - also Spring XD sources and sinks are simply Spring Integration channel adapters, when you're looking to extend Spring XD.

    3.) The effect of Spring XD has had on making unifying Spring Integration, Spring Batch, Spring Data (+Hadoop!) in one stack, effectively bringing batch and stream processing, HDFS/Apache Hadoop support, and much more to Spring Integration.

    4.) The effect of the soon-to-be-released Spring Integration 4.0 Java DSL https://github.com/spring-projects/spring-integration-extensions/wiki/Spring-Integration-Java-DSL-Reference

    For your consideration,

    /Pieter (disclaimer I work at Pivotal)

    0 讨论(0)
提交回复
热议问题