anchor.diff:  == Introducing Spring Cloud Stream
   
   Spring Cloud Stream is a framework for building message-driven microservices.
  -Spring Cloud Stream builds upon Spring Boot to create DevOps friendly microservice applications and Spring Integration to provide connectivity to message brokers.  
  -Spring Cloud Stream provides an opinionated configuration of message brokers, introducing the concepts of persistent pub/sub semantics, consumer groups and partitions across several middleware vendors.  
  -This opinionated configuration provides the basis to create stream processing application.
  +Spring Cloud Stream builds upon Spring Boot to create DevOps friendly microservice applications and Spring Integration to provide connectivity to message brokers.
  +Spring Cloud Stream provides an opinionated configuration of message brokers, introducing the concepts of persistent pub/sub semantics, consumer groups and partitions across several middleware vendors.
  +This opinionated configuration provides the basis to create stream processing applications.
   
   By adding `@EnableBinding` to your main application, you get immediate connectivity to a message broker and by adding `@StreamListener` to a method, you will receive events for stream processing.
   
  
positive.code: ==== Rabbit Producer Properties
  
  The following properties are available for Rabbit producers only and
  must be prefixed with `spring.cloud.stream.bindings.<channelName>.`
  
  autoBindDlq::
    Whether to automatically declare the DLQ and bind it to the binder DLX. Default `false`.
  
negative.code: 
  In addition to that, it also supports the following properties:
  
  spring.cloud.stream.rabbit.binder.addresses::
    A comma-separated list of RabbitMQ server addresses (used only for clustering and in conjunction with `nodes`). Default empty.
  spring.cloud.stream.rabbit.binder.adminAddresses. Default empty.
    A comma-separated list of RabbitMQ management plugin URLs - only used when nodes contains more than one entry. Entries in this list must correspond to the corresponding entry in addresses. Default empty.
  spring.cloud.stream.rabbit.binder.nodes::
    A comma-separated list of RabbitMQ node names; when more than one entry, used to locate the server address where a queue is located. Entries in this list must correspond to the corresponding entry in addresses. Default empty.
  spring.cloud.stream.rabbit.rabbit.username::
    The user name. Default `null`.
  spring.cloud.stream.rabbit.binder.password::
    The password. Default `null`.
  spring.cloud.stream.rabbit.binder.vhost::
    The virtual host. Default `null`.
  spring.cloud.stream.rabbit.binder.useSSL::
    True if Rabbit MQ should use SSL.
  spring.cloud.stream.rabbit.binder.sslPropertiesLocation::
    The location of the SSL properties file, when certificate exchange is used.
  spring.cloud.stream.rabbit.binder.compressionLevel::
    Compression level for compressed bindings. Defaults to `1` (BEST_LEVEL). See `java.util.zip.Deflater`.
  
  ==== Rabbit MQ Consumer Properties
  
  The following properties are available for Rabbit consumers only and
  must be prefixed with `spring.cloud.stream.rabbit.bindings.<channelName>.consumer` .
  
  acknowledgeMode::
    The acknowledge mode. Default `AUTO`.
  