我想使用Kafka Steams和Spring Webflux在Netty之上构建一个流引擎,以通过HTTP提供持续的状态更改。我注意到如果我有
compile('org.springframework.cloud:spring-cloud-stream-binder-kafka')在我的gradle文件中,spring boot app以嵌入式Tomcat开头,而不是Netty。
如果我删除
compile('org.springframework.cloud:spring-cloud-stream-binder-kafka')而不是从Netty开始。
这是不是某种设计决定不为spring-cloud-stream-binder-kafka提供响应式功能,还是我做错了什么?完整的gradle配置如下所示:
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)发布于 2017-12-25 03:40:19
这不是故意的。绑定器的2.0版本仍在开发中;spring-cloud-stream的执行器端点可能还没有迁移。
顺便说一句,我看到你正在使用boot M4 --当前的2.0里程碑是M7。
我不知道这是否能解决您的问题;您也许可以排除mvc jar,但我不知道执行器是否可以工作,或者您是否可以禁用stream的执行器,所以YMMV。
不过,您应该能够直接使用spring-kafka。
https://stackoverflow.com/questions/47963440
复制相似问题