2017-12-24 58 views
1

HTTP를 통해 계속되는 상태 변경을 제공하기 위해 Netty 위에 Kafka Steams와 Spring Webflux를 사용하여 스트리밍 엔진을 구축하고 싶습니다. 내가 내 Gradle을 파일 봄 부팅 응용 프로그램에스프링 클라우드 스트림 바인더 kafka가 Netty에서 실행되지 않습니다.

compile('org.springframework.cloud:spring-cloud-stream-binder-kafka') 

의존성이있는 경우 내가 발견 한 것은 임베디드 톰캣 대신의 Netty로 시작합니다.

이의 Netty로 시작보다 내가

compile('org.springframework.cloud:spring-cloud-stream-binder-kafka') 

를 제거합니다.

spring-cloud-stream-binder-kafka과 함께 반응 기능을 제공하지 않는 디자인 결정인가, 아니면 내가 잘못하고있는 것입니까? Full gradle config는 다음과 같습니다.

buildscript { 
    ext { 
     springBootVersion = '2.0.0.M4' 
     springKafkaVersion = '2.1.0.RELEASE' 
     kafkaStreamsVersion = '1.0.0' 
     confluentVersion = '4.0.0' 
     avroVersion = '1.8.2' 
     avroPluginVersion = '0.12.0' 
    } 
    repositories { 
     mavenCentral() 
     maven { url "https://repo.spring.io/snapshot" } 
     maven { url "https://repo.spring.io/milestone" } 
     maven { url "https://plugins.gradle.org/m2/" } 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion") 
     classpath "com.commercehub.gradle.plugin:gradle-avro-plugin:$avroPluginVersion" 
    } 
} 

apply plugin: 'java' 
apply plugin: 'org.springframework.boot' 
apply plugin: 'io.spring.dependency-management' 
apply plugin: "com.commercehub.gradle.plugin.avro" 

group = 'eu.lkokhreidze' 
version = '0.0.1-SNAPSHOT' 
sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
    maven { url "https://repo.spring.io/snapshot" } 
    maven { url "https://repo.spring.io/milestone" } 
    maven { url "https://packages.confluent.io/maven/" } 
} 

ext { 
    springCloudVersion = 'Finchley.M3' 
} 

dependencies { 
    compile('org.springframework.boot:spring-boot-starter-webflux') 
    compile('org.springframework.boot:spring-boot-starter-actuator') 
    compile('org.springframework.cloud:spring-cloud-stream-binder-kafka') 
    compile("org.springframework.kafka:spring-kafka:$springKafkaVersion") 

    compile("org.apache.avro:avro:$avroVersion") 
    compile("org.apache.kafka:kafka-streams:$kafkaStreamsVersion") 
    compile("io.confluent:kafka-streams-avro-serde:$confluentVersion") 

    compileOnly('org.springframework.boot:spring-boot-configuration-processor') 
    compileOnly('org.projectlombok:lombok') 

    testCompile('org.springframework.boot:spring-boot-starter-test') 
    testCompile('io.projectreactor:reactor-test') 
} 

dependencyManagement { 
    imports { 
     mavenBom "org.springframework.cloud:spring-cloud-dependencies:$springCloudVersion" 
    } 
} 

compileJava.dependsOn(generateAvroJava) 
compileTestJava.dependsOn(generateTestAvroJava) 

답변

2

의도적 인 것은 아닙니다. 2.0 버전의 바인더는 아직 개발 중입니다. spring-cloud-stream의 액추에이터 끝 점이 아직 마이그레이션되지 않았을 수 있습니다.

현재 부팅 M4를 사용하고 있습니다. 현재 2.0 마일스톤은 M7입니다.

문제가 해결 될지 모르겠다. 당신은 mvc 항아리를 제외 할 수 있습니다,하지만 액츄에이터가 작동하는지, 또는 스트림 액추에이터를 사용할 수 없으면 YMMV인지 모르겠습니다.

spring-kafka를 직접 사용할 수 있어야합니다.

+0

나는 M7과 같은 문제도 시도했다. 그러나 설명을 해 주셔서 감사합니다. 내가 그걸로 무엇을 할 수 있는지 알아 내려고 노력할 것이다. –

+0

[Issue # 1163] (https://github.com/spring-cloud/spring-cloud-stream/issues/1163)을 열었습니다. –