19、微服务数据传输、认证授权及监控部署全解析

微服务数据传输、认证授权及监控部署全解析

1. 使用 Avro 进行数据传输

在 Kafka 主题上发布的键和值必须有相关的序列化器和反序列化器(SerDes)。之前的示例中,Kafka 消费者对键使用 LongDeserializer ,对值使用 StringDeserializer 。相应地,Kafka 生产者会分别使用 LongSerializer StringSerializer 来发布键和值。然而,由于微服务可能使用任何编程语言编写,并且可能需要通过 Kafka 主题与其他服务协作,依赖于特定语言的 SerDes 并不是一个好的选择。

1.1 Avro 简介

Avro 是一种与语言无关的数据序列化格式,支持大多数知名的编程语言。它有自己声明式的模式定义方式,可以映射到描述实体的业务模型。一旦定义了模式,消息会在生产者端根据该模式进行编码,然后在消费者端使用相同的模式进行解码。只要生产者和消费者都能访问该模式,它们就可以通过 Avro 消息进行通信,而无需考虑所使用的编程语言。

1.2 在 Clojure 中使用 Avro

Avro Clojure 库 abracad 是对 Avro API 的封装,能很好地与用 Clojure 编写的应用程序集成。要使用 abracad ,需在 project.clj 文件中包含依赖 [com.damballa/abracad "0.4.13"]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值