Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spring eXchange - Spring XD Deep Dive

Eric Bottard
November 06, 2014

Spring eXchange - Spring XD Deep Dive

This is a Presentation about the internals of Spring XD, a one stop shop tool to ease the development of Big Data applications.

The recorded talk can be seen at https://skillsmatter.com/skillscasts/5952-a-guided-tour-to-spring-xd-internals

Eric Bottard

November 06, 2014
Tweet

More Decks by Eric Bottard

Other Decks in Programming

Transcript

  1. A Guided Tour to Spring XD Internals Eric BOTTARD, Pivotal

    The Spring eXchange, London, Nov. 6, 2014
  2. Process boundary Feature boundary XD Admin Container Container ZK XD

    Admin Container ZK Distributed Single-Node module module module module module module module module module
  3. Message Bus ✦ Binds module inputs & outputs to a

    transport ✦ Performs Serialization (Kryo)
  4. Message Bus ✦ Binds module inputs & outputs to a

    transport ✦ Performs Serialization (Kryo) ✦ Rabbit, Redis, Kafka, (local)
  5. Bypass the Message Bus ✦Automatic when producer & consumer are

    guaranteed to be co-located currently: module.*.count = 0
  6. Bypass the Message Bus ✦Automatic when producer & consumer are

    guaranteed to be co-located currently: module.*.count = 0 ✦Can be disabled module.*.producer.directBindingAllowed=false
  7. Modules ✦ Own ApplicationContext ✦ no bean name collision ✦

    module options = value placeholders ✦ Own ClassLoader (Parent Last) ✦ ⾠ classes on the wire
  8. Modules ✦ Own ApplicationContext ✦ no bean name collision ✦

    module options = value placeholders ✦ Own ClassLoader (Parent Last) ✦ ⾠ classes on the wire ✦ Simple Module, Composed Module
  9. Apache ZooKeeper Fault Tolerant ~ hierarchical FileSystem Clients can be

    notified of ✦ node changes ✦ other clients departure
  10. XD  Container XD  Container XD  Admin ! XD Shell Assigns

    Modules to Containers HTTP POST /streams/myStream “http | file” ZooKeeper Container State
  11. XD  Container XD  Container XD  Admin ! XD Shell HTTP

    Module Spring App Context Assigns Modules to Containers HTTP POST /streams/myStream “http | file” ZooKeeper Container State
  12. XD  Container XD  Container XD  Admin ! XD Shell File

      Module HTTP Module Spring App Context Assigns Modules to Containers HTTP POST /streams/myStream “http | file” ZooKeeper Container State
  13. XD  Container XD  Container XD  Admin ! XD Shell File

      Module HTTP Module Spring App Context Assigns Modules to Containers Message  Bus HTTP POST /streams/myStream “http | file” ZooKeeper Container State
  14. XD  Container XD  Container XD  Admin ! XD Shell Message

     Bus File   Module HTTP Module Spring App Context Assigns Modules to Containers ZooKeeper Container State
  15. XD  Container XD  Container XD  Admin ! XD Shell Message

     Bus File   Module HTTP Module Spring App Context Assigns Modules to Containers HTTP POST /streams/aStream “M1 | M2” ZooKeeper Container State
  16. XD  Container XD  Container XD  Admin ! XD Shell Message

     Bus File   Module HTTP Module Spring App Context M1 Assigns Modules to Containers HTTP POST /streams/aStream “M1 | M2” ZooKeeper Container State
  17. XD  Container XD  Container XD  Admin ! XD Shell Message

     Bus File   Module HTTP Module Spring App Context M1 M2 Assigns Modules to Containers HTTP POST /streams/aStream “M1 | M2” ZooKeeper Container State
  18. XD  Container XD  Container XD  Admin (leader) ! XD Shell

    HTTP POST /streams/aStream “M1 | M2” Message  Bus File   Module HTTP Module Spring App Context M1 M2 ZooKeeper Container State XD  Admin XD  Admin
  19. XD  Container XD  Admin (leader) ! XD Shell HTTP POST

    /streams/aStream “M1 | M2” Message  Bus File   Module M2 ZooKeeper Container State XD  Admin XD  Admin
  20. XD  Container XD  Admin (leader) ! XD Shell HTTP POST

    /streams/aStream “M1 | M2” Message  Bus File   Module M2 ZooKeeper Container State XD  Admin XD  Admin HTTP Module M1
  21. Creek designed by Dan Hetteix from the thenounproject.com School designed

    by Ricardo Augusto Cherem from the thenounproject.com Crystal Ball designed by Johanna Vargas Sanchez from the thenounproject.com Funnel designed by alberto galindo from the thenounproject.com Fingers Crossed designed by caba kosmotesto from the thenounproject.com Search designed by Gianni - Dolce Merda from the thenounproject.com Streamline designed by dw from the thenounproject.com Network designed by Dmitry Baranovskiy from the thenounproject.com Network designed by Edward Boatman from the thenounproject.com Frog designed by Ealancheliyan s from the thenounproject.com