Helpex - Trao đổi & giúp đỡ Đăng nhập

Thay thế đăng ký lược đồ hợp lưu bằng Tích hợp Red Hat

Dương Duy Khoa
· 17:00 14/12/2020
14 giờ trước

Cùng với những cải tiến cho các môi trường Apache Kafka-based, Red Hat công bố các  Red Hat Tích hợp  đăng ký dịch vụ cho đội giúp đỡ để quản lý lược đồ dịch vụ của họ. Các nhà phát triển hiện có thể sử dụng sổ đăng ký để truy vấn các lược đồ và tạo tác theo yêu cầu của mỗi điểm cuối dịch vụ hoặc đăng ký và lưu trữ các cấu trúc mới để sử dụng trong tương lai.

Đăng ký cho kiến ​​trúc hướng sự kiện

Sổ đăng ký dịch vụ của Red Hat Integration, dựa trên sổ đăng ký dự án Apicurio , cung cấp một cách để tách lược đồ được sử dụng để tuần tự hóa và giải mã hóa các thông báo Kafka với các ứng dụng đang gửi / nhận chúng. Sổ đăng ký dịch vụ là nơi lưu trữ các tạo tác giản đồ (và thiết kế API) cung cấp API REST và một tập hợp các quy tắc tùy chọn để thực thi tính hợp lệ và phát triển của nội dung. Sổ đăng ký xử lý các định dạng dữ liệu như Apache Avro, JSON Schema, Google Protocol Buffers (protobuf), cũng như các định nghĩa OpenAPI và AsyncAPI.

Để dễ dàng chuyển đổi từ Confluent, cơ quan đăng ký dịch vụ đã thêm khả năng tương thích với API REST đăng ký lược đồ hợp lưu. Điều này có nghĩa là các ứng dụng sử dụng thư viện máy khách Hợp lưu có thể thay thế Đăng ký lược đồ và sử dụng đăng ký dịch vụ Tích hợp Red Hat để thay thế.

Thay thế đăng ký lược đồ hợp lưu

Thay thế đăng ký lược đồ hợp lưu bằng Tích hợp Red Hat
Vì mục đích đơn giản trong bài viết này, tôi sẽ sử dụng một ví dụ máy khách Avro hiện có sẵn để chỉ cho bạn cách chuyển từ Sổ đăng ký lược đồ hợp lưu sang đăng ký dịch vụ Tích hợp Red Hat.

Bạn sẽ cần sử dụng docker-compile để khởi động môi trường cục bộ và Git để sao chép mã kho lưu trữ.

1. Sao chép kho lưu trữ GitHub ví dụ:

$ git clone  https://github.com/confluentinc/examples.git  
$ git checkout 5.3.1-post

2. Thay đổi sang thư mục ví dụ Avro:

$ cd ví dụ / khách hàng / avro /

3. Mở ConsumerExample.javatệp bên dưới src/main/java/io/confluent/examples/clients/basicavro.
4. Thay thế thuộc tính SCHEMA_REGISTRY_URL_CONFIG bằng thuộc tính sau:

...
props.put (AbstractKafkaAvroSerDeConfig.SCHEMA_REGISTRY_URL_CONFIG, " http: // localhost: 8081 / api / ccompat "); ...

5. Lặp lại bước cuối cùng với ProducerExample.javatệp.
6. Tải này Docker-compose.yaml tập tin ví dụ để triển khai một cụm Kafka đơn giản với registry Apicurio.
7. Khởi động cụm Kafka và sổ đăng ký.

$ docker-compos -f docker-compos.yaml up

8. Để chạy trình sản xuất, biên dịch dự án:

Gói biên dịch sạch $ mvn

9. Chạy ProducerExample.java:

$ mvn executive: java -Dexec.mainClass = io.confluent.examples.clients.basicavro.ProductionerExample

10. Sau một lúc, bạn sẽ thấy kết quả sau:

...
Đã tạo thành công 10 tin nhắn cho một chủ đề được gọi là giao dịch
[THÔNG TIN] ----------------------------------------------- -------------------------
[INFO] XÂY DỰNG THÀNH CÔNG
[THÔNG TIN] ----------------------------------------------- -------------------------
...

11. Bây giờ chạy người tiêu dùng:

$ mvn executive: java -Dexec.mainClass = io.confluent.examples.clients.basicavro.ConsumerExample

Các thông báo sẽ được hiển thị trên màn hình của bạn:

...
offset = 0, key = id0, value = {"id": "id0", "amount": 1000.0}
offset = 1, key = id1, value = {"id": "id1", "amount": 1000.0}
offset = 2, key = id2, value = {"id": "id2", "amount": 1000.0}
offset = 3, key = id3, value = {"id": "id3", "amount": 1000.0}
offset = 4, key = id4, value = {"id": "id4", "amount": 1000.0}
offset = 5, key = id5, value = {"id": "id5", "amount": 1000.0}
offset = 6, key = id6, value = {"id": "id6", "amount": 1000.0}
offset = 7, key = id7, value = {"id": "id7", "amount": 1000.0}
offset = 8, key = id8, value = {"id": "id8", "amount": 1000.0}
offset = 9, key = id9, value = {"id": "id9", "amount": 1000.0}
...

12. Để kiểm tra lược đồ mà nhà sản xuất đã thêm vào sổ đăng ký, bạn có thể sử dụng lệnh curl sau:

$ curl --silent -X NHẬN http: // localhost: 8081 / api / ccompat / schemas / ids / 1 | jq.

13. Kết quả sẽ hiển thị cho bạn giản đồ Avro:

{
  "schema": "{\" type \ ": \" record \ ", \" name \ ": \" Payment \ ", \" namespace \ ": \" io.confluent.examples.clients.basicavro \ ", \ "các trường \": [{\ "tên \": \ "id \", \ "loại \": \ "chuỗi \"}, {\ "tên \": \ "số tiền \", \ "loại \" ":\"gấp đôi\"}]}"
}

Làm xong!

Như bạn có thể thấy, bạn chỉ có thể thay đổi URL cho sổ đăng ký để sử dụng sổ đăng ký dịch vụ Red Hat thay thế mà không cần phải thay đổi bất kỳ mã nào trong các ứng dụng của bạn.

Nếu bạn quan tâm đến các tính năng khác của sổ đăng ký dịch vụ Tích hợp Red Hat, bạn có thể xem ví dụ chính thức sử dụng tiện ích mở rộng Quarkus Kafka trong kho lưu trữ GitHub amq -amples của tôi .

Tóm lược

Sổ đăng ký dịch vụ Tích hợp Red Hat là một kho dữ liệu trung tâm cho các lược đồ và tạo tác API. Các nhà phát triển có thể truy vấn, tạo, đọc, cập nhật và xóa các tạo tác dịch vụ, phiên bản và quy tắc để điều chỉnh cấu trúc dịch vụ của họ. Sổ đăng ký dịch vụ cũng có thể được sử dụng để thay thế sổ đăng ký lược đồ hợp lưu với các máy khách Apache Kafka. Chỉ cần thay đổi URL cho sổ đăng ký, bạn có thể sử dụng sổ đăng ký dịch vụ Red Hat mà không cần thay đổi mã trong các ứng dụng của mình.

Xem thêm:
16 hữu ích 0 bình luận 2.0k xem chia sẻ

Có thể bạn quan tâm