客户端架构强制确保根据客户端架构注册表中定义的架构(而不是中转站/服务器端)验证数据。 生成者应用程序可以使用架构在将数据发送到事件中心之前验证和序列化数据。 同样,使用者应用程序可以在从事件中心接收事件后反序列化和验证数据。
客户端架构强制实施可确保在客户端上验证数据。 生成者应用程序发送数据,使用者应用程序接收数据。 根据客户端架构注册表中定义的架构(而不是中转站/服务器端)验证该数据。
此图演示了流:
注释
当事件生成者和使用者将架构注册表与 Kafka 协议和 Avro 架构配合使用时,此图展示了信息流。 其他协议和架构格式的工作方式类似。
Producer
Kafka 生成者应用程序使用
KafkaAvroSerializer指定的架构序列化事件数据。 生成者应用程序提供架构注册表终结点的详细信息,以及架构验证所需的其他可选参数。序列化程序查找架构注册表中的架构以序列化事件数据。 如果找到架构,则返回相应的架构 ID。 可以将生成者应用程序配置为在架构注册表不存在时自动将架构注册到架构注册表。
序列化程序将架构 ID 追加到发布到事件中心的序列化数据。
消费者
Kafka 消费者应用程序使用
KafkaAvroDeserializer反序列化它从事件中心接收的数据。反序列化程序使用架构 ID(由生产者添加到前面)从架构注册表中检索架构。
反序列化程序使用架构反序列化它从事件中心接收的事件数据。
架构注册表客户端使用缓存来防止将来进行冗余架构注册表查找。