Spring Cloud Stream 의 버전 선택

Cloud 2018.01.28 21:53 posted by dev.bistro

밑에는 잡담이니 결론 부터

* 결론 Ditmars.SR3 사용,  Spring 4, Boot 1.5.x는 기존대로 유지
* Kafka 는 0.1x 유지
* spring-cloud-stream-reactive & reactor 3.1.X 사용 ( rxjava2 버림 )




* 우리가 사용중인 Spring Cloud Dalston SR5는 Ditmars 버전 매트릭스에 맞지 않다 이전 버전인 Chelsea.SR2를 고려해야한다.

* 하지만 Ditmars.SR3 버전으로 리서치를 진행 할 예정이다. 

* Ditmars.SR3 은 spring-kafka 1.1.7 이므로 @EnableStream 사용등은 커스텀마이징을 해야 하기 때문에 추천버전은 Kafka 0.10을 그대로 사용 해서 진행 한다


Ditmars.SR3 의존성 정보

Spring Cloud Stream Core 1.3.2.RELEASE
Spring Cloud Stream Binder Kafka 1.3.2.RELEASE
Spring Boot : Spring Boot 1.5.7 or a later 1.5.x release. It is not compatible with Spring Boot 2.x.
Spring Cloud : Spring Cloud Edgware.SR1


라이브 러리 버전 상세 정보

- 링크 : https://github.com/spring-cloud/spring-cloud-stream-starters/blob/vDitmars.SR3/spring-cloud-stream-dependencies/pom.xml

- 링크 :  https://github.com/spring-cloud/spring-cloud-stream/blob/v1.3.2.RELEASE/pom.xml

- reactor : 2.0.8.RELEASE (default)

- rxjava : 1.1.10 (optional 이므로 spring-cloud-stream-rxjava 를 추가)



spring-cloud-stream-reactive


* reference : https://docs.spring.io/spring-cloud-stream/docs/Ditmars.SR3/reference/htmlsingle/#_reactive_programming_support

* spring-cloud-stream 에 reactive API를 사용하기 위한 지원용 라이브러리이다.

* 기본은 reactor 이며, ConditionalOnClass 에 의해 rxjava 를 지원하지만 가장 최신 버전까지도 rxjava 1.x 만을 지원한다.

* 추가로 @StreamEmitter 어노테이션이 추가된다. 

* ReactiveSupportAutoConfiguration 가 존재하며, rx.Observable 클래스를 확인 한후 rxjava 를 지원한다

* 아래의 Adapter 들을 Spring bean으로 등록시켜서 Observable type을 처리해준다.

  - MessageChannelToInputObservableParameterAdapter

  - MessageChannelToObservableSenderParameterAdapter

  - ObservableToMessageChannelResultAdapter

* rxjava를 굳이 쓰겠지만 rxjava1을 쓰는게 속편하다, 하지만 rxjava2 를 현재 쓰고 있는데 down-grade할 정도로 필요성은 있어 보이지 않고

그냥 이번기회에 (어차피 옮길거) reactor를 써보기로 함



티스토리 툴바