Registri Skema Konfluen menyediakan lapisan penyajian untuk metadata Anda. Ini menyediakan antarmuka Tenang untuk menyimpan dan mengambil skema Avro®, Skema JSON, dan Protobuf Anda. Ini menyimpan riwayat versi semua skema berdasarkan strategi nama subjek tertentu, menyediakan beberapa pengaturan kompatibilitas dan memungkinkan evolusi skema sesuai dengan pengaturan kompatibilitas yang dikonfigurasi dan memperluas dukungan untuk jenis skema ini. Ini menyediakan serializer yang dihubungkan ke klien Apache Kafka® yang menangani penyimpanan skema dan pengambilan pesan Kafka yang dikirim dalam format apa pun yang didukung.
README ini mencakup bagian berikut:
Berikut adalah beberapa link ke halaman Schema Registry di Dokumentasi Confluent.
Berikut ini mengasumsikan Anda memiliki Kafka dan sebuah instance dari Schema Registry yang berjalan menggunakan pengaturan default. Contoh-contoh ini, dan banyak lagi, juga tersedia di Contoh Penggunaan API di docs.confluent.io.
# Register a new version of a schema under the subject "Kafka-key"
$ curl -X POST -H " Content-Type: application/vnd.schemaregistry.v1+json "
--data ' {"schema": "{"type": "string"}"} '
http://localhost:8081/subjects/Kafka-key/versions
{ " id " :1}
# Register a new version of a schema under the subject "Kafka-value"
$ curl -X POST -H " Content-Type: application/vnd.schemaregistry.v1+json "
--data ' {"schema": "{"type": "string"}"} '
http://localhost:8081/subjects/Kafka-value/versions
{ " id " :1}
# List all subjects
$ curl -X GET http://localhost:8081/subjects
[ " Kafka-value " , " Kafka-key " ]
# List all schema versions registered under the subject "Kafka-value"
$ curl -X GET http://localhost:8081/subjects/Kafka-value/versions
[1]
# Fetch a schema by globally unique id 1
$ curl -X GET http://localhost:8081/schemas/ids/1
{ " schema " : " " string " " }
# Fetch version 1 of the schema registered under subject "Kafka-value"
$ curl -X GET http://localhost:8081/subjects/Kafka-value/versions/1
{ " subject " : " Kafka-value " , " version " :1, " id " :1, " schema " : " " string " " }
# Fetch the most recently registered schema under subject "Kafka-value"
$ curl -X GET http://localhost:8081/subjects/Kafka-value/versions/latest
{ " subject " : " Kafka-value " , " version " :1, " id " :1, " schema " : " " string " " }
# Delete version 3 of the schema registered under subject "Kafka-value"
$ curl -X DELETE http://localhost:8081/subjects/Kafka-value/versions/3
3
# Delete all versions of the schema registered under subject "Kafka-value"
$ curl -X DELETE http://localhost:8081/subjects/Kafka-value
[1, 2, 3, 4, 5]
# Check whether a schema has been registered under subject "Kafka-key"
$ curl -X POST -H " Content-Type: application/vnd.schemaregistry.v1+json "
--data ' {"schema": "{"type": "string"}"} '
http://localhost:8081/subjects/Kafka-key
{ " subject " : " Kafka-key " , " version " :1, " id " :1, " schema " : " " string " " }
# Test compatibility of a schema with the latest schema under subject "Kafka-value"
$ curl -X POST -H " Content-Type: application/vnd.schemaregistry.v1+json "
--data ' {"schema": "{"type": "string"}"} '
http://localhost:8081/compatibility/subjects/Kafka-value/versions/latest
{ " is_compatible " :true}
# Get top level config
$ curl -X GET http://localhost:8081/config
{ " compatibilityLevel " : " BACKWARD " }
# Update compatibility requirements globally
$ curl -X PUT -H " Content-Type: application/vnd.schemaregistry.v1+json "
--data ' {"compatibility": "NONE"} '
http://localhost:8081/config
{ " compatibility " : " NONE " }
# Update compatibility requirements under the subject "Kafka-value"
$ curl -X PUT -H " Content-Type: application/vnd.schemaregistry.v1+json "
--data ' {"compatibility": "BACKWARD"} '
http://localhost:8081/config/Kafka-value
{ " compatibility " : " BACKWARD " }
Anda dapat mengunduh registri skema versi bawaan sebagai bagian dari Platform Confluent. Untuk menginstal dari sumber, ikuti petunjuk di bagian Pengembangan.
Antarmuka REST ke registri skema menyertakan server Jetty bawaan. Skrip pembungkus bin/schema-registry-start
dan bin/schema-registry-stop
adalah metode yang disarankan untuk memulai dan menghentikan layanan.
Untuk membangun versi pengembangan, Anda mungkin memerlukan versi pengembangan common dan rest-utils. Setelah menginstalnya, Anda dapat membangun Schema Registry dengan Maven.
Proyek ini menggunakan gaya kode Google Java untuk menjaga kode tetap bersih dan konsisten.
Untuk membangun:
mvn compile
Untuk menjalankan pengujian unit dan integrasi:
mvn test
Untuk menjalankan instans Registri Skema terhadap klaster Kafka lokal (menggunakan konfigurasi default yang disertakan dengan Kafka):
mvn exec:java -pl :kafka-schema-registry -Dexec.args= " config/schema-registry.properties "
Untuk membuat versi paket, lewati pengujian secara opsional:
mvn package [-DskipTests]
Ini menghasilkan:
package-schema-registry/target/kafka-schema-registry-package-$VERSION-package
package-kafka-serde-tools/target/kafka-serde-tools-package-$VERSION-package
Masing-masing yang dihasilkan berisi tata letak direktori yang mirip dengan versi biner yang dikemas.
Anda juga dapat membuat JAR gemuk mandiri dari registri skema menggunakan profil standalone
:
mvn package -P standalone [-DskipTests]
Ini menghasilkan package-schema-registry/target/kafka-schema-registry-package-$VERSION-standalone.jar
, yang mencakup semua dependensi juga.
Spesifikasi OpenAPI (sebelumnya dikenal sebagai Swagger) dibuat secara otomatis menggunakan swagger-maven-plugin
pada tahap compile
.
Terima kasih telah membantu kami membuat Schema Registry menjadi lebih baik!
Proyek ini dilisensikan di bawah Lisensi Komunitas Confluent, kecuali untuk lib client-*
dan avro-*
, yang berada di bawah lisensi Apache 2.0. Lihat file LISENSI di setiap subfolder untuk perjanjian lisensi terperinci.