Spring云流粘合剂kafka不在Netty上运行

问题描述 投票:1回答:1

我想在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)
spring-cloud-stream spring-webflux
1个回答
2
投票

这不是故意的。 2.0版本的活页夹仍在开发中; spring-cloud-stream的执行器端点可能尚未迁移。

顺便说一句,我看到你正在使用启动M4 - 目前的2.0里程碑是M7。

我不知道这是否会解决你的问题;你可能能够排除mvc罐子,但我不知道执行器是否可以工作,或者你是否可以禁用流的执行器,所以YMMV。

但是你应该可以直接使用spring-kafka。

© www.soinside.com 2019 - 2024. All rights reserved.