[英]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 密鑰,這可能不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.