微服务数据传输、认证授权及监控部署全解析
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"] 。
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



