簡體   English   中英

讓 NestJs Kafka 與 Avro 一起工作的例子?

[英]Example to make NestJs Kafka work with Avro?

我正在尋找一個將 NestJS Kafka 微服務與 Avro 架構一起使用的示例。

到目前為止,消費者正在使用 Json Object,但我們正在尋找以 Avro 作為模式類型的模式注冊表。

卡夫卡配置:

    transport: Transport.KAFKA,
    options: {
      client: {
        clientId,
        ssl: true,
        brokers,
      },
      consumer: {
        groupId: consumerGroupId,
      },
      subscribe: {
        fromBeginning: false,
      },
    },
  };

消費者:

@Controller(USER)
@UseInterceptors(ClassSerializerInterceptor)
export class UserController {
  constructor(private readonly service: UserService) {
  }

  @EventPattern(process.env.USER_TOPIC, Transport.KAFKA)
  async processUserEvent(data: UserEvent) {
    await this.service.handleEvent(data);
  }
}

Nest 以 object 的形式接收傳入的 Kafka 消息,其鍵、值和標頭屬性的值類型為 Buffer

與 KafkaJS 的每個消息處理程序一樣。

這意味着您需要獲取這些,而不是“ UserEvent ”,例如使用 Nest 文檔中提到的 IncomingMessage 類型。 然后你可以在confluent-schema-registry NPM package 關注文檔

作為options的一部分,有一個parser設置為“保持二進制”,但這僅適用於值,如果您也有 Avro 密鑰,這可能不起作用。

另見https://github.com/nestjs/nest/issues/7288

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM