我想在Netty上使用Kafka Streams和Spring Webflux构建一个流引擎,以便通过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)
这不是故意的。 2.0版本的活页夹仍在开发中; spring-cloud-stream的执行器端点可能尚未迁移。
顺便说一句,我看到你正在使用启动M4 - 目前的2.0里程碑是M7。
我不知道这是否会解决你的问题;你可能能够排除mvc罐子,但我不知道执行器是否可以工作,或者你是否可以禁用流的执行器,所以YMMV。
但是你应该可以直接使用spring-kafka。