使用avro

部署schema registry

schema-registry:
  image: docker.io/bitnami/schema-registry:7.5
  restart: always
  ports:
    - '8074:8081'
  depends_on:
    - kafka
  environment:
    - SCHEMA_REGISTRY_LISTENERS=http://0.0.0.0:8081
    - SCHEMA_REGISTRY_KAFKA_BROKERS=PLAINTEXT://kafka:9092

添加依赖

properties
<confluent.version>5.2.0</confluent.version>
<avro.version>1.11.3</avro.version>
dependencise
<dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro</artifactId>
    <version>${avro.version}</version>
</dependency>
<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>kafka-streams-avro-serde</artifactId>
    <version>${confluent.version}</version>
</dependency>
<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>kafka-avro-serializer</artifactId>
    <version>${confluent.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>
repositories
plugins

注意

使用avro插件生成类

avsc 文件

执行命令:

配置 channel

生产者

消费者

Last updated