Spring cloud stream application messaging system portability





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am in process of building an application with IBM MQ. The suggested architecture to build it is using spring cloud stream. I have read in many articles that you can port your spring cloud messaging system to some other. That means, i can change my IBM MQ to kafka later also but provided binder implementation on classpath. What does that mean?



I have built a Spring Amqp application using rabbitmq and the features i used in my application are as belo,




  1. Request reply

  2. Dlq

  3. Producer and listener configuration both with scale up and down which means i can create a queue, its exchange and binding routing key using code.


I want to know is above feature available if i use spring cloud stream and do i need to change my implementation code to port ibm mq to kafka?










share|improve this question


















  • 1





    Is your question really just asking what the Classpath means? For example, let's say you have no Kafka code, it's for IBM or Rabbit, then you start to try to use Spring Kafka classes in the code, then you'll get compilation errors because theyre not found... So you need to add Kafka libraries to your classpath, and port parts of the code to use them

    – cricket_007
    Nov 25 '18 at 16:26













  • Another question is do i need to change my implementation code to shift from ibm mq to kafka?

    – Aditya Ekbote
    Nov 25 '18 at 16:41











  • I don't have experience with Spring Kafka, but at the very least, I think there's different annotations for "hooking up" Kafka settings, so yes

    – cricket_007
    Nov 25 '18 at 17:50











  • Alternatively, you can keep your IBM MQ code, and use Kafka Connect to move messages directly into Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

    – cricket_007
    Nov 25 '18 at 17:51




















0















I am in process of building an application with IBM MQ. The suggested architecture to build it is using spring cloud stream. I have read in many articles that you can port your spring cloud messaging system to some other. That means, i can change my IBM MQ to kafka later also but provided binder implementation on classpath. What does that mean?



I have built a Spring Amqp application using rabbitmq and the features i used in my application are as belo,




  1. Request reply

  2. Dlq

  3. Producer and listener configuration both with scale up and down which means i can create a queue, its exchange and binding routing key using code.


I want to know is above feature available if i use spring cloud stream and do i need to change my implementation code to port ibm mq to kafka?










share|improve this question


















  • 1





    Is your question really just asking what the Classpath means? For example, let's say you have no Kafka code, it's for IBM or Rabbit, then you start to try to use Spring Kafka classes in the code, then you'll get compilation errors because theyre not found... So you need to add Kafka libraries to your classpath, and port parts of the code to use them

    – cricket_007
    Nov 25 '18 at 16:26













  • Another question is do i need to change my implementation code to shift from ibm mq to kafka?

    – Aditya Ekbote
    Nov 25 '18 at 16:41











  • I don't have experience with Spring Kafka, but at the very least, I think there's different annotations for "hooking up" Kafka settings, so yes

    – cricket_007
    Nov 25 '18 at 17:50











  • Alternatively, you can keep your IBM MQ code, and use Kafka Connect to move messages directly into Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

    – cricket_007
    Nov 25 '18 at 17:51
















0












0








0








I am in process of building an application with IBM MQ. The suggested architecture to build it is using spring cloud stream. I have read in many articles that you can port your spring cloud messaging system to some other. That means, i can change my IBM MQ to kafka later also but provided binder implementation on classpath. What does that mean?



I have built a Spring Amqp application using rabbitmq and the features i used in my application are as belo,




  1. Request reply

  2. Dlq

  3. Producer and listener configuration both with scale up and down which means i can create a queue, its exchange and binding routing key using code.


I want to know is above feature available if i use spring cloud stream and do i need to change my implementation code to port ibm mq to kafka?










share|improve this question














I am in process of building an application with IBM MQ. The suggested architecture to build it is using spring cloud stream. I have read in many articles that you can port your spring cloud messaging system to some other. That means, i can change my IBM MQ to kafka later also but provided binder implementation on classpath. What does that mean?



I have built a Spring Amqp application using rabbitmq and the features i used in my application are as belo,




  1. Request reply

  2. Dlq

  3. Producer and listener configuration both with scale up and down which means i can create a queue, its exchange and binding routing key using code.


I want to know is above feature available if i use spring cloud stream and do i need to change my implementation code to port ibm mq to kafka?







apache-kafka rabbitmq ibm-mq spring-cloud spring-cloud-stream






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 25 '18 at 5:37









Aditya EkboteAditya Ekbote

7631716




7631716








  • 1





    Is your question really just asking what the Classpath means? For example, let's say you have no Kafka code, it's for IBM or Rabbit, then you start to try to use Spring Kafka classes in the code, then you'll get compilation errors because theyre not found... So you need to add Kafka libraries to your classpath, and port parts of the code to use them

    – cricket_007
    Nov 25 '18 at 16:26













  • Another question is do i need to change my implementation code to shift from ibm mq to kafka?

    – Aditya Ekbote
    Nov 25 '18 at 16:41











  • I don't have experience with Spring Kafka, but at the very least, I think there's different annotations for "hooking up" Kafka settings, so yes

    – cricket_007
    Nov 25 '18 at 17:50











  • Alternatively, you can keep your IBM MQ code, and use Kafka Connect to move messages directly into Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

    – cricket_007
    Nov 25 '18 at 17:51
















  • 1





    Is your question really just asking what the Classpath means? For example, let's say you have no Kafka code, it's for IBM or Rabbit, then you start to try to use Spring Kafka classes in the code, then you'll get compilation errors because theyre not found... So you need to add Kafka libraries to your classpath, and port parts of the code to use them

    – cricket_007
    Nov 25 '18 at 16:26













  • Another question is do i need to change my implementation code to shift from ibm mq to kafka?

    – Aditya Ekbote
    Nov 25 '18 at 16:41











  • I don't have experience with Spring Kafka, but at the very least, I think there's different annotations for "hooking up" Kafka settings, so yes

    – cricket_007
    Nov 25 '18 at 17:50











  • Alternatively, you can keep your IBM MQ code, and use Kafka Connect to move messages directly into Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

    – cricket_007
    Nov 25 '18 at 17:51










1




1





Is your question really just asking what the Classpath means? For example, let's say you have no Kafka code, it's for IBM or Rabbit, then you start to try to use Spring Kafka classes in the code, then you'll get compilation errors because theyre not found... So you need to add Kafka libraries to your classpath, and port parts of the code to use them

– cricket_007
Nov 25 '18 at 16:26







Is your question really just asking what the Classpath means? For example, let's say you have no Kafka code, it's for IBM or Rabbit, then you start to try to use Spring Kafka classes in the code, then you'll get compilation errors because theyre not found... So you need to add Kafka libraries to your classpath, and port parts of the code to use them

– cricket_007
Nov 25 '18 at 16:26















Another question is do i need to change my implementation code to shift from ibm mq to kafka?

– Aditya Ekbote
Nov 25 '18 at 16:41





Another question is do i need to change my implementation code to shift from ibm mq to kafka?

– Aditya Ekbote
Nov 25 '18 at 16:41













I don't have experience with Spring Kafka, but at the very least, I think there's different annotations for "hooking up" Kafka settings, so yes

– cricket_007
Nov 25 '18 at 17:50





I don't have experience with Spring Kafka, but at the very least, I think there's different annotations for "hooking up" Kafka settings, so yes

– cricket_007
Nov 25 '18 at 17:50













Alternatively, you can keep your IBM MQ code, and use Kafka Connect to move messages directly into Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

– cricket_007
Nov 25 '18 at 17:51







Alternatively, you can keep your IBM MQ code, and use Kafka Connect to move messages directly into Kafka docs.confluent.io/current/connect/kafka-connect-ibmmq/…

– cricket_007
Nov 25 '18 at 17:51














1 Answer
1






active

oldest

votes


















0














The main goal of the spring-cloud-stream framework is to provide transparent binding capabilities to to a variety of external system and message brokers, to ensure that the actual user code stays agnostic to the type of broker used.



So yes, you can swap the binder from A to B without introducing any changes to your code. You may need to change some configuration parameters (e.g., broker URL, port etc). For more details please visit the project website which provides a very good summary of the capabilities of the framework as well as links to detailed documentation.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53464956%2fspring-cloud-stream-application-messaging-system-portability%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    The main goal of the spring-cloud-stream framework is to provide transparent binding capabilities to to a variety of external system and message brokers, to ensure that the actual user code stays agnostic to the type of broker used.



    So yes, you can swap the binder from A to B without introducing any changes to your code. You may need to change some configuration parameters (e.g., broker URL, port etc). For more details please visit the project website which provides a very good summary of the capabilities of the framework as well as links to detailed documentation.






    share|improve this answer




























      0














      The main goal of the spring-cloud-stream framework is to provide transparent binding capabilities to to a variety of external system and message brokers, to ensure that the actual user code stays agnostic to the type of broker used.



      So yes, you can swap the binder from A to B without introducing any changes to your code. You may need to change some configuration parameters (e.g., broker URL, port etc). For more details please visit the project website which provides a very good summary of the capabilities of the framework as well as links to detailed documentation.






      share|improve this answer


























        0












        0








        0







        The main goal of the spring-cloud-stream framework is to provide transparent binding capabilities to to a variety of external system and message brokers, to ensure that the actual user code stays agnostic to the type of broker used.



        So yes, you can swap the binder from A to B without introducing any changes to your code. You may need to change some configuration parameters (e.g., broker URL, port etc). For more details please visit the project website which provides a very good summary of the capabilities of the framework as well as links to detailed documentation.






        share|improve this answer













        The main goal of the spring-cloud-stream framework is to provide transparent binding capabilities to to a variety of external system and message brokers, to ensure that the actual user code stays agnostic to the type of broker used.



        So yes, you can swap the binder from A to B without introducing any changes to your code. You may need to change some configuration parameters (e.g., broker URL, port etc). For more details please visit the project website which provides a very good summary of the capabilities of the framework as well as links to detailed documentation.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 26 '18 at 8:14









        Oleg ZhurakouskyOleg Zhurakousky

        2,09279




        2,09279
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53464956%2fspring-cloud-stream-application-messaging-system-portability%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            這個網誌中的熱門文章

            Post-Redirect-Get with Spring WebFlux and Thymeleaf

            Xamarin.form Move up view when keyboard appear

            JBPM : POST request for execute process go wrong