采用
Kafka在消息系统中有着广泛的应用,它是一个分布式流处理平台,可以处理消费者和生产者之间的消息。 Kafka是一个高性能、高吞吐量的消息系统,可以处理海量的消息,适用于大规模的数据处理。
Kafka在开发中使用已经非常成熟,其生态系统也非常丰富。在实际的开发中,Schema Registry并没有收到很多的重视, 这我们建议在使用Kafka的时候,先养成构建消息的Schema的习惯,然后再进行消息的生产和消费。 目前主要的消息格式如下:
- json: 也是经常使用的,建议采用JSON Schema
- Apache Avro:不少系统在使用Kafka的时候,会使用Avro作为消息的Schema,性能更好,同时和大数据整合也容易。
- Protobuf: 如果你非常关注消息的处理性能和大小,可以考虑使用Protobuf。
考虑到Kafka已经是事实上的消息系统标准,所以在CNCF的场景下,默认就会使用Strimzi来部署Kafka集群,目前Strimzi已经成为CNCF的顶级项目。
Kafka Zero Copy:

Kafka Cheat Sheet:

Kafka & Friends
- Redpanda: a streaming data platform with Kafka API compatible. 10x faster https://redpanda.com/
- Bufstream: Protobuf-first Kafka - https://buf.build/product/bufstream
- Strimzi: https://strimzi.io/
- kcat:https://github.com/edenhill/kcat
- Kafka UIs: https://github.com/provectus/kafka-ui
- ZooKeeper: https://zookeeper.apache.org/
- Spring Cloud Schema Registry: https://github.com/spring-cloud/spring-cloud-schema-registry
- ksqlDB: https://ksqldb.io/
- kwack - In-Memory Analytics for Kafka using DuckDB: https://github.com/rayokota/kwack
References
- Kafka: https://kafka.apache.org/
- Schema Registry Overview: https://docs.confluent.io/platform/current/schema-registry/index.html
- Top 10 Tools for Kafka Engineers: https://thenewstack.io/top-10-tools-for-kafka-engineers/