SPRINGONE2GX WASHINGTON, DC Applied Spring Integration, Spring AMQP, RabbitMQ in Spring XD Gary P. Russell @gprussell garyrussell Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation. Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 2 XD Source • Typically an inbound channel adapter, wired to a channel ‘output’ Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3 XD Processor • ‘input’ and ‘output’ channels and some processing endpoint(s) Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 4 XD Sink • Typically an outbound channel adapter, wired to a channel ‘input’ Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5 Wired Together into a Stream http | transform —expression=payload.toUpperCase() | log MessageBus In today’s talk, we are going to discuss the module wiring - how modules are wired together with a MessageBus and, in particular the RabbitMessageBus, demonstrating how we leverage Spring Integration and the Spring AMQP project and RabbitMQ. Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 Key Methods public interface MessageBus { void bindConsumer(String name, MessageChannel moduleInputChannel, Properties properties); void bindProducer(String name, MessageChannel moduleOutputChannel, Properties properties); ... } Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7 Bus Properties xd: messagebus: rabbit: default: ... autoBindDLQ: false # retry, batching, compression, concurrency, prefetch etc ... durableSubscription: false ... republishToDLQ: false # When false, normal rabbitmq dlq processing; ... Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 8 Let’s See it in Action… Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 9 ` @springcentral Spring.io/video https://github.com/spring-projects/spring-integration/blob/master/ CONTRIBUTING.md Unless otherwise indicated, these slides are © 2013-2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 10