Spring Cloud stream binder kafka 在 Netty 上没有 运行
Spring cloud stream binder kafka doesn't run on Netty
我想在 Netty 之上使用 Kafka Steams 和 Spring Webflux 构建流媒体引擎,以通过 HTTP 提供持续的状态更改。如果我有
,我会注意到什么
compile('org.springframework.cloud:spring-cloud-stream-binder-kafka')
我的 gradle 文件中的依赖项 spring 启动应用程序以嵌入式 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版本的binder还在开发中; spring-cloud-stream 的执行器端点可能尚未迁移。
顺便说一句,我看到你正在使用引导 M4 - 当前 2.0 里程碑是 M7。
不知道能不能解决你的问题;您也许可以排除 mvc 罐子,但我不知道执行器是否可以工作,或者您是否可以禁用流的执行器,所以 YMMV。
不过你应该可以直接使用 spring-kafka。
我想在 Netty 之上使用 Kafka Steams 和 Spring Webflux 构建流媒体引擎,以通过 HTTP 提供持续的状态更改。如果我有
,我会注意到什么compile('org.springframework.cloud:spring-cloud-stream-binder-kafka')
我的 gradle 文件中的依赖项 spring 启动应用程序以嵌入式 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版本的binder还在开发中; spring-cloud-stream 的执行器端点可能尚未迁移。
顺便说一句,我看到你正在使用引导 M4 - 当前 2.0 里程碑是 M7。
不知道能不能解决你的问题;您也许可以排除 mvc 罐子,但我不知道执行器是否可以工作,或者您是否可以禁用流的执行器,所以 YMMV。
不过你应该可以直接使用 spring-kafka。