spring cloud stream은 확장성있는 event driven 마이크로서비스를 스프링 애플리케이션에서 친숙하게 도입할 수 있게 하는 프레임워크입니다.
https://spring.io/projects/spring-cloud-stream/
크게 바인더와 바인딩으로 나눠지게 되는데,
바인더는 메시지 브로커와 스프링 애플리케이션과의 상호작용을 실질적으로 처리하는 역할을 하고,
바인딩은 애플리케이션과 메시지 브로커 간에 메시지를 주고받는 방식을 정의한 개체라고 생각할 수 있겠습니다.

다양한 바인더가 구현되어 있고, 직접 바인더를 구현할 수도 있습니다.
따라서 메시지 브로커가 변경되더라도 코드 변경을 최소화하면서 바인더만 교체할 수 있고, 하나의 서비스에서 여러 메시지 브로커를 사용하더라도 동일한 형태로 구현할 수 있습니다.
메시지를 생성하는 Producer 서비스와 메시지를 받는 Receiver 서비스로 구성하도록 하겠습니다.

test1에 메시지(Hello World)를 전송합니다.test1.test1 queue를 바라보면서 메시지를 받습니다.
test2 exchange로 메시지를 보냅니다.test2.test2 queue를 바라보면서 메시지를 받습니다.다음 과정에서 Producer와 Receiver 서비스에서 Spring Cloud Stream으로 구현하도록 하겠습니다.