我有严重的问题处理Spring云流Kafka活页夹。Spring Cloud 3.0.2.Release的配置设置中存在许多模糊性和一致性问题。我一直试图为Kafka主题设置组ID和客户端ID,但是尽管尝试了各种不同的组合,我还是无法正确配置组ID。
文档声称,我们应该能够通过配置以下设置之一来设置组id和客户端id:https://cloud.spring.io/spring-cloud-statist/spring-cloud-stream/current/reference/html/spring-cloud-stream.html#binding-properties
spring.cloud.stream.default.group
spring.cloud.stream.default.consumer.group
spring.cloud.stream.kafka.default.consumer.group
spring.cloud.stream.bindings.<channelName>.group
上述配置都不能为生产者设置客户端id或为消费者设置组id。我得到的唯一进展是通过一个完全不同的配置来设置客户端id。
spring.kafka.client-id
spring.kafka.admin.client-id
spring.kafka.producer.client-id
在用这些设置设置成功设置客户端id后,我尝试为消费者设置组id,但令人惊讶的是,这并不起作用。
spring.kafka.group-id <---- does not exist as a property, but tried this anyway
spring.kafka.consumer.group-id
编辑:下面是应用程序的设置。
@SpringBootApplication
@EnableSwagger2
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public Docket swaggerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(regex("^(?!.*error).+$"))
.build()
.pathMapping("/");
}
}
spring:
cloud:
stream:
bindings:
MyKafkaTopicBinderChannel:
destination: MyKafkaTopic
group: MyServiceGroup
default:
producer:
useNativeEncoding: on
consumer:
useNativeEncoding: on
contentType: application/*+avro
kafka:
binder:
brokers: some.broker.io
producer-properties:
key:
serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
value:
serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
schema:
registry:
url: some.registry.io
consumer-properties:
key:
deserializer: io.confluent.kafka.serializers.KafkaAvroDeserializer
value:
deserializer: io.confluent.kafka.serializers.KafkaAvroDeserializer
schema:
registry.url: some.registry.io
specific:
avro:
reader: true
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.some.org</groupId>
<artifactId>MyService</artifactId>
<version>1.0.0</version>
<name>chatbotApi</name>
<description>Spring Boot Service</description>
<properties>
<java.version>11</java.version>
<gson.version>2.8.6</gson.version>
<springfox.version>2.9.2</springfox.version>
<swagger-annotations.version>1.6.0</swagger-annotations.version>
<swagger-models.version>1.6.0</swagger-models.version>
<jackson-datatype-jsr310.version>2.10.2</jackson-datatype-jsr310.version>
<avro.version>1.9.2</avro.version>
<avro-maven-plugin.version>1.9.2</avro-maven-plugin.version>
<confluent.kafka.version>5.4.0</confluent.kafka.version>
<kafka-clients.version>2.4.0</kafka-clients.version>
<spring-cloud.version>3.0.2.RELEASE</spring-cloud.version>
</properties>
<repositories>
<repository>
<id>confluent</id>
<url>http://packages.confluent.io/maven/</url>
</repository>
</repositories>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-kafka</artifactId>
<version>${spring-cloud.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson-datatype-jsr310.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-annotations.version}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>${swagger-models.version}</version>
</dependency>
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-schema-registry-client</artifactId>
<version>${confluent.kafka.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-avro-serializer</artifactId>
<version>${confluent.kafka.version}</version>
</dependency>
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-streams-avro-serde</artifactId>
<version>${confluent.kafka.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka-clients.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>${avro.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-tools</artifactId>
<version>${avro.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-test-support</artifactId>
<version>${spring-cloud.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>local.yaml</exclude>
<exclude>avro/*</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro-maven-plugin.version}</version>
<executions>
<execution>
<id>schemas</id>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
<goal>protocol</goal>
<goal>idl-protocol</goal>
</goals>
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources/avro/</sourceDirectory>
<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
SpringIntegrationService.java
@Component
@EnableBinding(SpringIntegrationService.KafkaTopicBindings.class)
public class SpringIntegrationService {
private static Logger logger = LoggerFactory.getLogger(SpringIntegrationService.class);
private MessageChannel someChannel;
public interface KafkaTopicBindings {
String MY_KAFKA_TOPIC_BINDER_CHANNEL = "MyKafkaTopicBinderChannel";
@Output(KafkaTopicBindings.MY_KAFKA_TOPIC_BINDER_CHANNEL)
MessageChannel someChannel();
}
public SpringIntegrationService(KafkaTopicBindings bindings) {
this.someChannel = bindings.someChannel();
}
@ServiceActivator(inputChannel = "entry.kafka")
public boolean entryKafka(Message<someChannel> msg) {
logger.info("entryKafka(): Payload: {}", msg.getPayload());
try {
return someChannel.send(MessageBuilder.withPayload(msg.getPayload())
.setHeader(KafkaHeaders.MESSAGE_KEY, "Some Key").build());
} catch (Exception e) {
logger.warn("entryKafka(): Failed to send message onto someChannel topic", e);
return false;
}
}
}
这里是我试图更新博客中提到的应用程序的repo。清理了配置中的一些内容,并将示例更新为使用新的功能模型。我证实了这是有效的。你能在你的一端运行它并与你的设置进行比较吗?如果您可以将此示例作为报告任何潜在问题的一种手段,这将有助于我们进一步帮助您。
我知道Java和C#,但属性绑定我只知道C#MVVM。我试图理解JavaFX中的属性绑定,使用属性值的自定义getter和setter(就像在C#中一样)。 我创建了以下类: 我的印象是,如果我遵循推荐的JavaBean/JavaFX命名约定,那么绑定系统将足够聪明地使用反射(?)并为该属性使用自定义getter/setter。但是我的视图模型getter/setter从来没有使用过。 在C#中,
我正在函数式编程中使用。我尝试了许多组合来设置GroupId,但是使用者总是将GroupId打印为spring.application.name。 pom.xml 如您所见,groupId不是从yml文件设置的。我在这上面花了很多小时,但没有运气。请帮忙。 更新 当我不使用将pom依赖项修改为spring-cloud-stream-binder-kafka:3.1.1的streams API时,G
当我试着运行appium时,突然遇到了这个错误。 错误:处理命令时发生未知的服务器端错误。原始错误:执行adbExec时出错。原始错误:“Command”C:\Users\vsingh\AppData\Local\Android\Sdk\platform tools\adb。exe-P 5037-s emulator-5554转发tcp:8200 tcp:6790'已退出,代码为1';斯特德:亚行
Android Studio:3.1.0、3.1.1 分级:4.4 生成工具:3.1.0 我正在使用数据绑定库。当我向project添加布局文件或向布局文件中添加任何视图时,Android Studio无法为布局生成绑定类,直到重新构建项目。 布局文件: 我查看了Android Studio的日志,当布局文件发生变化时,总会有错误消息。
这过去适用于所有以前版本的JAXB。我已经升级到JAXB的2.2.7版本,现在抛出以下内容: java.lang.AssertionError:javax.xml.bind.jaxBException-带有链接异常:[com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:1 counts of IllegalAnnotat
我有一个带有标签(TheLabel)的xib...它是一个NSTextField。用户无法编辑它的文本。 我将它的值绑定到控制器类中的NSString*。 我将它的字体绑定到我的controller类中的NSFont*。 我可以在controller类中更改NSString,并且可以看到它反映在标签中。 但是... 我一辈子都弄不清楚怎么打开和关闭下划线。 如果我把这个函数叫做... 如有任何指导