Buat Function Compute sink connector untuk mengekspor data dari topik sumber di instans ApsaraMQ for Kafka ke fungsi Function Compute.
Prasyarat
Sebelum membuat Function Compute sink connector, pastikan prasyarat berikut terpenuhi:
-
ApsaraMQ for Kafka
-
Aktifkan fitur connector untuk instans ApsaraMQ for Kafka. Untuk informasi selengkapnya, lihat Aktifkan connector.
-
Buat topik sumber untuk instans ApsaraMQ for Kafka. Untuk informasi selengkapnya, lihat Langkah 1: Buat topik.
Contoh ini menggunakan topik bernama fc-test-input.
-
-
Function Compute
-
Buat fungsi di Function Compute. Untuk informasi selengkapnya, lihat Buat fungsi.
PentingFungsi tersebut harus merupakan fungsi event.
Panduan ini menggunakan fungsi event bernama hello_world sebagai contoh. Fungsi tersebut berada dalam layanan guide-hello_world dan berjalan di lingkungan runtime Python. Kode contoh untuk fungsi tersebut adalah sebagai berikut:
# -*- coding: utf-8 -*- import logging # Untuk mengaktifkan fitur initializer # Implementasikan fungsi initializer sebagai berikut: # def initializer(context): # logger = logging.getLogger() # logger.info('initializing') def handler(event, context): logger = logging.getLogger() logger.info('hello world:' + bytes.decode(event)) return 'hello world:' + bytes.decode(event)
-
-
Opsi: EventBridge
CatatanLangkah ini hanya diperlukan jika instans ApsaraMQ for Kafka Anda berada di wilayah China (Hangzhou) atau China (Chengdu).
Catatan
-
Anda hanya dapat mengekspor data dari topik sumber di instans ApsaraMQ for Kafka ke fungsi di Function Compute jika keduanya berada di wilayah yang sama. Untuk informasi selengkapnya tentang batasan connector, lihat Batasan.
-
Jika instans ApsaraMQ for Kafka Anda berada di wilayah China (Hangzhou) atau China (Chengdu), connector tersebut dideploy di EventBridge.
-
EventBridge saat ini gratis. Untuk informasi selengkapnya, lihat Penagihan.
-
Saat Anda membuat connector, EventBridge secara otomatis membuat peran terkait layanan berikut: AliyunServiceRoleForEventBridgeSourceKafka dan AliyunServiceRoleForEventBridgeConnectVPC.
-
Jika peran terkait layanan belum dibuat, EventBridge akan secara otomatis membuat peran terkait layanan yang sesuai agar EventBridge dapat menggunakan peran tersebut untuk mengakses ApsaraMQ for Kafka dan VPC.
-
Jika peran terkait layanan tersebut sudah ada, EventBridge tidak membuatnya lagi.
Untuk informasi selengkapnya tentang peran terkait layanan, lihat peran terkait layanan.
-
-
Anda saat ini tidak dapat melihat log waktu proses tugas yang dideploy di EventBridge. Setelah tugas connector selesai, periksa progresnya dengan melihat status konsumsi kelompok konsumen topik sumber. Untuk detailnya, lihat Lihat status konsumen.
-
Prosedur
Gunakan Function Compute sink connector untuk mengekspor data dari topik sumber di instans ApsaraMQ for Kafka ke fungsi di Function Compute:
-
Opsi: Aktifkan akses lintas wilayah untuk Function Compute sink connector
PentingJika Anda tidak memerlukan akses lintas wilayah, lewati langkah ini.
Aktifkan akses internet untuk Function Compute sink connector
-
Opsi: Aktifkan akses lintas akun untuk Function Compute sink connector
PentingJika Anda tidak memerlukan akses lintas akun, lewati langkah ini.
-
Opsi: Buat topik dan kelompok konsumen yang diperlukan oleh Function Compute sink connector
Penting-
Jika Anda tidak perlu menyesuaikan nama topik dan kelompok konsumen, Anda dapat melewati langkah ini.
-
Beberapa topik yang diperlukan oleh Function Compute sink connector harus menggunakan mesin penyimpanan lokal. Jika instans ApsaraMQ for Kafka Anda adalah versi utama 0.10.2, Anda tidak dapat membuat topik dengan penyimpanan lokal secara manual. Topik tersebut harus dibuat secara otomatis.
-
-
Verifikasi hasilnya
Aktifkan akses internet untuk FC Sink connector
Jika Function Compute sink connector perlu mengakses layanan Alibaba Cloud di wilayah lain, Anda perlu mengaktifkan akses internet untuknya. Untuk detailnya, lihat Aktifkan akses internet untuk connector.
Buat kebijakan kustom
Di akun tujuan, buat kebijakan kustom untuk memberikan akses ke Function Compute.
-
Masuk ke Konsol RAM.
-
Di panel navigasi sebelah kiri, pilih Permissions > Policies.
-
Di halaman Policies, klik Create Policy.
-
Di halaman Create Policy, konfigurasikan kebijakan tersebut.
-
Di tab JSON, masukkan skrip kebijakan dan klik Next.
Skrip kebijakan berikut memberikan izin untuk mengakses Function Compute:
{ "Version": "1", "Statement": [ { "Action": [ "fc:InvokeFunction", "fc:GetFunction" ], "Resource": "*", "Effect": "Allow" } ] } -
Di bawah Basic Information, masukkan KafkaConnectorFcAccess untuk Name.
-
Klik OK.
-
Buat peran RAM
Buat peran RAM di akun tujuan. Anda tidak dapat memilih ApsaraMQ for Kafka sebagai layanan tepercaya saat membuat peran RAM. Oleh karena itu, Anda harus memilih layanan yang didukung lainnya, lalu memodifikasi kebijakan kepercayaan secara manual setelah peran dibuat.
-
Di panel navigasi sebelah kiri, pilih Identity Management > Roles.
-
Di halaman Roles, klik Create Role.
-
Di panel Create Role, konfigurasikan peran tersebut.
-
Pilih Alibaba Cloud Service sebagai jenis entitas tepercaya, lalu klik Next.
-
Di bagian Role Type, pilih Normal Service Role. Untuk Role Name, masukkan AliyunKafkaConnectorRole. Dari daftar drop-down Select Trusted Service, pilih Function Compute, lalu klik Complete.
-
-
Di halaman Roles, temukan dan klik AliyunKafkaConnectorRole.
-
Di halaman detail AliyunKafkaConnectorRole, klik tab Trust Policy Management, lalu klik Edit Trust Policy.
-
Di panel Edit Trust Policy, ganti fc dalam skrip dengan alikafka, lalu klik OK.
Setelah Anda menyimpan perubahan, di tab Trust Policy Management untuk AliyunKafkaConnectorRole, pastikan parameter
Servicedalam kebijakan kepercayaan diperbarui menjadialikafka.aliyuncs.comdan parameterActiondiatur kests:AssumeRole.
Tambahkan izin
Di akun tujuan, berikan izin kepada peran RAM untuk mengakses Function Compute.
-
Di panel navigasi sebelah kiri, buka Identity Management > Roles.
-
Di halaman Roles, temukan AliyunKafkaConnectorRole dan klik Add Permissions di kolom Actions.
-
Di panel Add Permissions, tambahkan kebijakan KafkaConnectorFcAccess.
-
Di bagian Select Policy, pilih Custom Policy.
-
Di daftar Authorization Policy Name, temukan dan klik KafkaConnectorFcAccess.
-
Klik OK.
-
Klik Complete.
-
Buat topik untuk Function Compute sink connector
Di konsol ApsaraMQ for Kafka, Anda dapat membuat lima topik yang diperlukan oleh Function Compute sink connector secara manual: topik offset tugas, topik konfigurasi tugas, topik status tugas, topik dead-letter queue, dan topik data error. Topik-topik ini memiliki persyaratan berbeda untuk jumlah partisi dan mesin penyimpanan. Untuk informasi selengkapnya, lihat Parameter dalam langkah Konfigurasi Layanan Sumber.
Masuk ke ApsaraMQ for Kafka console.
Di halaman Overview, pilih wilayah di bagian Resource Distribution.
PentingAnda harus membuat topik di wilayah yang sama dengan aplikasi Anda, yaitu wilayah tempat instans ECS dideploy. Topik tidak dapat digunakan lintas wilayah. Misalnya, jika topik dibuat di wilayah China (Beijing), produsen dan konsumen pesan juga harus berjalan di instans ECS di wilayah China (Beijing).
Di halaman Instances, klik nama instans target.
Di panel navigasi sebelah kiri, klik Topics.
Di halaman Topics, klik Create Topic.
-
Di panel Create Topic, konfigurasikan pengaturan topik dan klik OK.
Parameter
Deskripsi
Contoh
Name
Nama topik.
CatatanKafka menganggap nama topik dengan underscore (
xxx_xxx) dan titik (xxx.xxx) identik. Jika Anda mencoba membuat topik duplikat, sistem akan melaporkan error.demo
Description
Deskripsi singkat tentang topik.
demo test
Partitions
Jumlah partisi topik.
12
Storage Engine
CatatanSaat ini, Anda hanya dapat memilih mesin penyimpanan untuk instans Edisi Profesional non-serverless. Untuk tipe instans lain, opsi ini tidak tersedia, dan Cloud Storage digunakan secara default.
Mesin penyimpanan untuk pesan dalam topik.
ApsaraMQ for Kafka mendukung dua mesin penyimpanan berikut:
-
Cloud Storage: Mesin ini menggunakan disk Alibaba Cloud untuk penyimpanan dasar dan menyediakan performa tinggi, latensi rendah, serta keandalan tinggi dengan mekanisme tiga-replika terdistribusi. Jika Instance Edition instans adalah Standard (High Write), hanya Cloud Storage yang dapat digunakan.
-
Local Storage: Mesin ini menggunakan algoritma replikasi in-sync replica (ISR) Kafka asli dan mekanisme tiga-replika terdistribusi.
Cloud Storage
Message Type
Jenis pesan dalam topik.
-
Normal Message: Secara default, Kafka mendistribusikan pesan dengan kunci yang sama ke partisi yang sama dan menyimpannya sesuai urutan pengiriman. Jika node dalam kluster gagal, pesan mungkin tidak berurutan. Jika Anda mengatur Storage Engine ke Cloud Storage, sistem memilih Normal Message secara default.
-
Partitionally Ordered Message: Secara default, Kafka mendistribusikan pesan dengan kunci yang sama ke partisi yang sama dan menyimpannya sesuai urutan pengiriman. Bahkan jika node kluster gagal, urutan pesan dalam partisi tetap terjamin. Namun, pengiriman pesan ke beberapa partisi mungkin gagal hingga partisi tersebut pulih. Jika Anda mengatur Storage Engine ke Local Storage, sistem memilih Partitionally Ordered Message secara default.
Normal Message
Log Cleanup Policy
Kebijakan pembersihan log untuk topik.
Saat Anda memilih Local Storage sebagai Storage Engine (saat ini, hanya instans Edisi Profesional yang mendukung penyimpanan lokal, dan opsi ini tidak tersedia untuk instans Edisi Standar), Anda perlu mengonfigurasi Log Cleanup Policy.
ApsaraMQ for Kafka mendukung dua kebijakan pembersihan log berikut.
-
Delete: Kebijakan pembersihan pesan default. Jika ruang disk mencukupi, pesan disimpan dalam periode retensi yang ditentukan. Jika ruang disk tidak mencukupi (biasanya saat penggunaan disk melebihi 85%), sistem akan menghapus pesan lama lebih awal untuk memastikan ketersediaan layanan.
-
Compact: Menggunakan kebijakan pembersihan Kafka Log Compaction. Log compaction memastikan sistem menyimpan nilai terbaru untuk setiap kunci pesan. Ini terutama digunakan untuk skenario seperti memulihkan status setelah crash sistem atau memuat ulang cache setelah restart sistem. Misalnya, Kafka Connect dan Confluent Schema Registry menggunakan topik compacted untuk menyimpan status sistem dan data konfigurasi.
PentingTopik compacted biasanya hanya digunakan untuk komponen ekosistem tertentu, seperti Kafka Connect atau Confluent Schema Registry. Jangan atur properti ini untuk topik yang digunakan untuk produksi dan konsumsi pesan umum. Untuk informasi selengkapnya, lihat ApsaraMQ for Kafka Demo Library.
Compact
Tag
Tag untuk topik.
demo
Setelah Anda membuat topik, topik tersebut muncul dalam daftar topik di halaman Topics.
-
Buat kelompok konsumen untuk FC sink connector
Anda dapat membuat kelompok konsumen untuk tugas sinkronisasi data Function Compute sink connector secara manual di konsol ApsaraMQ for Kafka. Nama kelompok konsumen harus berformat connect-nama-tugas. Untuk informasi selengkapnya, lihat Parameter dalam langkah Konfigurasi Layanan Sumber.
Masuk ke ApsaraMQ for Kafka console.
Di halaman Overview, pilih wilayah di bagian Resource Distribution.
Di halaman Instances, klik nama instans target.
Di panel navigasi sebelah kiri, klik Groups.
Di halaman Groups, klik Create Group.
-
Di panel Create Group, masukkan nama untuk kelompok konsumen di kotak teks Group ID, masukkan deskripsi singkat di kotak teks Description, tambahkan tag ke kelompok konsumen, lalu klik OK.
Setelah dibuat, kelompok konsumen muncul dalam daftar di halaman Groups.
Buat dan deploy FC Sink Connector
Buat dan deploy FC Sink Connector untuk menyinkronkan data dari ApsaraMQ for Kafka ke Function Compute.
Masuk ke ApsaraMQ for Kafka console.
Di halaman Overview, pilih wilayah di bagian Resource Distribution.
Di panel navigasi sebelah kiri, klik Connectors.
Di halaman Connectors, pilih instans tempat connector berada dari daftar drop-down Select Instance dan klik Create Connector.
-
Di wizard Create Connector, selesaikan langkah-langkah berikut.
-
Di tab Configure Basic Information, konfigurasikan parameter berikut sesuai kebutuhan, lalu klik Next.
Parameter
Deskripsi
Contoh
Name
Nama connector. Nama harus memenuhi persyaratan berikut:
-
Nama dapat terdiri dari maksimal 48 karakter dan hanya boleh berisi angka, huruf kecil, dan tanda hubung (-). Nama tidak boleh diawali dengan tanda hubung (-).
-
Nama harus unik dalam satu instans ApsaraMQ for Kafka.
Tugas sinkronisasi data connector menggunakan kelompok konsumen bernama
connect-nama-tugas. Jika Anda tidak membuat kelompok konsumen ini secara manual, sistem akan membuatnya secara otomatis.kafka-fc-sink
Instance
Secara default, nama dan ID instans ditampilkan.
demo alikafka_post-cn-st21p8vj****
-
-
Di tab Configure Source Service, atur Data Source ke Message Queue for Apache Kafka, konfigurasikan parameter berikut, lalu klik Next.
CatatanJika Anda telah membuat topik dan kelompok konsumen, pilih pembuatan resource manual dan masukkan informasi untuk resource yang sudah ada. Jika tidak, pilih pembuatan resource otomatis.
Tabel 1. Parameter untuk mengonfigurasi layanan sumber
Parameter
Deskripsi
Contoh
Data Source Topic
Topik sumber tempat data disinkronkan.
fc-test-input
Consumer Thread Concurrency
Jumlah thread konsumen konkuren untuk topik sumber. Nilai default: 6. Nilai yang valid:
-
1
-
2
-
3
-
6
-
12
6
Consumer Offset
Offset tempat konsumsi dimulai. Nilai yang valid:
-
Earliest Offset: Mulai konsumsi dari offset paling awal.
-
Latest Offset: Mulai konsumsi dari offset terbaru.
Earliest Offset
VPC ID
ID VPC tempat tugas sinkronisasi data dijalankan. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment. Secara default, ini adalah VPC dari instans ApsaraMQ for Kafka Anda. Anda tidak perlu menentukan nilai.
vpc-bp1xpdnd3l***
vSwitch ID
ID vSwitch tempat tugas sinkronisasi data dijalankan. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment. vSwitch harus berada di VPC yang sama dengan instans ApsaraMQ for Kafka. Secara default, ini adalah vSwitch yang Anda tentukan saat mendeploy instans ApsaraMQ for Kafka.
vsw-bp1d2jgg81***
Failure Handling Policy
Mengontrol apa yang terjadi ketika pengiriman pesan dari partisi gagal. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment. Nilai yang valid:
-
Continue Subscription: Lanjutkan konsumsi dari partisi dan catat error.
-
Stop Subscription: Hentikan konsumsi dari partisi dan catat error.
Catatan-
Untuk informasi selengkapnya tentang cara melihat log, lihat Operasi connector.
-
Untuk informasi selengkapnya tentang cara menemukan solusi berdasarkan kode kesalahan, lihat Kode kesalahan.
Continue Subscription
Resource Creation Method
Metode yang digunakan untuk membuat topik dan kelompok konsumen yang diperlukan oleh connector. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment.
-
Auto
-
Manual
Auto
Connector Consumer Group
Kelompok konsumen yang digunakan oleh tugas sinkronisasi data connector. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment. Nama kelompok konsumen harus berformat connect-nama-tugas.
connect-kafka-fc-sink
Task Offset Topic
Topik yang digunakan untuk menyimpan offset konsumen. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment.
-
Nama topik harus diawali dengan
connect-offset. -
Partisi: Jumlah partisi untuk topik harus lebih dari 1.
-
Mesin penyimpanan: Mesin penyimpanan untuk topik harus Local Storage.
-
cleanup.policy: Kebijakan pembersihan log untuk topik harus
compact.
connect-offset-kafka-fc-sink
Task Configuration Topic
Topik yang digunakan untuk menyimpan konfigurasi tugas. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment.
-
Topik: Disarankan nama topik diawali dengan
connect-config. -
Partisi: Jumlah partisi untuk topik harus 1.
-
Mesin penyimpanan: Mesin penyimpanan untuk topik harus Local Storage.
-
cleanup.policy: Kebijakan pembersihan log untuk topik harus
compact.
connect-config-kafka-fc-sink
Task Status Topic
Topik yang digunakan untuk menyimpan status tugas. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment.
-
Topik: Disarankan nama topik diawali dengan
connect-status. -
Partisi: Disarankan jumlah partisi diatur ke 6.
-
Mesin penyimpanan: Mesin penyimpanan untuk topik harus Local Storage.
-
cleanup.policy: Kebijakan pembersihan log untuk topik harus compact.
connect-status-kafka-fc-sink
Dead-letter Queue Topic
Topik yang digunakan untuk menyimpan data error dari framework Connect. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment. Untuk menghemat resource topik, Anda dapat menggunakan topik yang sama untuk parameter ini dan parameter Error data topic.
-
Topik: Disarankan nama topik diawali dengan
connect-error. -
Partisi: Disarankan jumlah partisi diatur ke 6.
-
Mesin penyimpanan: Mesin penyimpanan untuk topik dapat berupa Local Storage atau Cloud Storage.
connect-error-kafka-fc-sink
Error Data Topic
Topik yang digunakan untuk menyimpan data error dari sink. Parameter ini ditampilkan saat Anda mengklik Configure Runtime Environment. Untuk menghemat resource topik, Anda dapat menggunakan topik yang sama untuk parameter ini dan parameter dead-letter queue topic.
-
Topik: Disarankan nama topik diawali dengan
connect-error. -
Partisi: Disarankan jumlah partisi diatur ke 6.
-
Mesin penyimpanan: Mesin penyimpanan untuk topik dapat berupa Local Storage atau Cloud Storage.
connect-error-kafka-fc-sink
-
-
Di tab Configure Destination Service, pilih Function Compute untuk Target Service, konfigurasikan parameter berikut, lalu klik Create.
CatatanJika instans untuk connector berada di wilayah China (Hangzhou) atau China (Chengdu), kotak dialog Service Authorization muncul untuk membuat peran terkait layanan AliyunServiceRoleForEventBridgeSourceKafka dan AliyunServiceRoleForEventBridgeConnectVPC saat Anda memilih Function Compute sebagai Target Service. Di kotak dialog Service Authorization, klik Confirm, lalu konfigurasikan parameter berikut dan klik Create. Jika peran terkait layanan sudah dibuat, kotak dialog Service Authorization tidak muncul.
Parameter
Deskripsi
Contoh
Cross-account/Cross-region
Menentukan apakah FC Sink Connector menyinkronkan data ke layanan Function Compute yang berada di akun atau wilayah berbeda. Nilai default: No. Nilai yang valid:
-
No: Mode akun dan wilayah yang sama.
-
Yes: Lintas akun, lintas wilayah, atau keduanya.
No
Region
Wilayah layanan Function Compute. Secara default, ini adalah wilayah FC Sink Connector. Untuk menyinkronkan data lintas wilayah, Anda harus mengaktifkan akses publik untuk connector, lalu memilih wilayah tujuan. Untuk informasi selengkapnya, lihat Aktifkan akses publik untuk FC Sink Connector.
PentingSaat Cross-account/Cross-region diatur ke Yes, Region ditampilkan.
cn-hangzhou
Service Endpoint
Titik akhir layanan Function Compute. Anda dapat memperoleh titik akhir dari bagian Common Info di halaman Overview Konsol Function Compute.
-
Titik akhir internal: Direkomendasikan untuk latensi rendah. Gunakan jenis titik akhir ini jika instans ApsaraMQ for Kafka dan layanan Function Compute berada di wilayah yang sama.
-
Titik akhir publik: Tidak direkomendasikan karena latensi lebih tinggi. Gunakan jenis titik akhir ini jika instans ApsaraMQ for Kafka dan layanan Function Compute berada di wilayah berbeda. Untuk menggunakan titik akhir publik, Anda harus mengaktifkan akses publik untuk connector. Untuk informasi selengkapnya, lihat Aktifkan akses publik untuk FC Sink Connector.
PentingSaat Cross-account/Cross-region diatur ke Yes, Service Endpoint ditampilkan.
http://188***.cn-hangzhou.fc.aliyuncs.com
Alibaba Cloud Account
ID Akun Alibaba Cloud tempat layanan Function Compute berada. Anda dapat memperoleh ID dari bagian Common Info di halaman Overview Konsol Function Compute.
PentingJika Cross-account/Cross-region diatur ke Yes, Alibaba Cloud Account ditampilkan.
188***
RAM Role Name
Nama peran RAM yang diasumsikan oleh ApsaraMQ for Kafka untuk mengakses layanan Function Compute.
-
Untuk akses akun yang sama, Anda harus membuat peran RAM di akun Anda, memberikan izin kepada peran tersebut, lalu memasukkan nama peran. Untuk informasi selengkapnya, lihat Buat kebijakan kustom, Buat peran RAM untuk layanan Alibaba Cloud tepercaya, dan Berikan izin kepada peran RAM.
-
Untuk akses lintas akun, Anda harus membuat peran RAM di akun tujuan, memberikan izin kepada peran tersebut, lalu memasukkan nama peran. Untuk informasi selengkapnya, lihat Buat kebijakan kustom, Buat peran RAM untuk layanan Alibaba Cloud tepercaya, dan Berikan izin kepada peran RAM.
PentingSaat Cross-account/Cross-region diatur ke Yes, RAM Role Name ditampilkan.
AliyunKafkaConnectorRole
Service Name
Nama layanan di Function Compute.
guide-hello_world
Function Name
Nama fungsi di layanan Function Compute.
hello_world
Version or Alias
Versi atau alias layanan Function Compute.
Penting-
Jika Cross-account/Cross-region diatur ke No, Anda harus memilih antara Specified Version atau Specified Alias.
-
Jika Cross-account/Cross-region diatur ke Yes, Anda harus memasukkan versi atau alias layanan secara manual.
LATEST
Service Version
Versi layanan Function Compute.
PentingJika Cross-account/Cross-region diatur ke No dan Version or Alias diatur ke Specified Version, parameter Service Version ditampilkan.
LATEST
Service Alias
Alias layanan Function Compute.
PentingSaat Cross-account/Cross-region diatur ke No dan Version or Alias diatur ke Specified Alias, parameter Service Alias ditampilkan.
jy
Transmission Mode
Mode pengiriman pesan. Nilai yang valid:
-
Asynchronous: Direkomendasikan.
-
Synchronous: Tidak direkomendasikan. Dalam mode ini, pemrosesan pesan yang lambat oleh Function Compute juga memperlambat ApsaraMQ for Kafka. Jika satu batch pesan memerlukan waktu lebih dari 5 menit untuk diproses, rebalance client dipicu di ApsaraMQ for Kafka.
Asynchronous
Data Size
Jumlah maksimum pesan yang dimasukkan dalam satu batch. Connector mengumpulkan pesan menjadi batch yang mempertimbangkan jumlah ini dan batas ukuran permintaan dasar (6 MB untuk synchronous, 128 KB untuk asynchronous). Misalnya, jika mode pengiriman adalah asynchronous, ukuran batch adalah 20, dan Anda ingin mengirim 18 pesan di mana 17 pesan memiliki ukuran total 127 KB dan satu pesan memiliki ukuran 200 KB, connector mengumpulkan dan mengirim 17 pesan tersebut dalam satu batch. Connector mengirim pesan yang tersisa, yang ukurannya melebihi 128 KB, dalam batch terpisah.
CatatanJika Anda mengatur key ke null saat mengirim pesan, permintaan tidak menyertakan key. Jika Anda mengatur value ke null, permintaan tidak menyertakan value.
-
Jika ukuran total pesan dalam batch tidak melebihi batas ukuran permintaan, permintaan berisi konten pesan. Kode berikut memberikan contoh permintaan:
[ { "key":"this is the message's key2", "offset":8, "overflowFlag":false, "partition":4, "timestamp":1603785325438, "topic":"Test", "value":"this is the message's value2", "valueSize":28 }, { "key":"this is the message's key9", "offset":9, "overflowFlag":false, "partition":4, "timestamp":1603785325440, "topic":"Test", "value":"this is the message's value9", "valueSize":28 }, { "key":"this is the message's key12", "offset":10, "overflowFlag":false, "partition":4, "timestamp":1603785325442, "topic":"Test", "value":"this is the message's value12", "valueSize":29 }, { "key":"this is the message's key38", "offset":11, "overflowFlag":false, "partition":4, "timestamp":1603785325464, "topic":"Test", "value":"this is the message's value38", "valueSize":29 } ] -
Jika ukuran satu pesan melebihi batas ukuran permintaan, permintaan tidak menyertakan konten pesan. Kode berikut memberikan contoh permintaan:
[ { "key":"123", "offset":4, "overflowFlag":true, "partition":0, "timestamp":1603779578478, "topic":"Test", "value":"1", "valueSize":272687 } ]CatatanUntuk memperoleh konten pesan, Anda harus menarik pesan berdasarkan offset-nya.
50
Retries
Jumlah percobaan ulang setelah pengiriman pesan gagal. Nilai default adalah 2. Rentang nilai adalah 1 hingga 3. Beberapa error yang menyebabkan pengiriman pesan gagal tidak mendukung percobaan ulang. Pemetaan antara Kode kesalahan dan dukungan percobaan ulang adalah sebagai berikut:
-
4XX: Percobaan ulang tidak didukung untuk semua error 4xx kecuali 429.
-
5XX: Percobaan ulang didukung.
Catatan-
Connector memanggil operasi InvokeFunction untuk mengirim pesan ke Function Compute.
-
Jika pesan gagal dikirim setelah jumlah maksimum percobaan ulang, pesan tersebut dikirim ke topik dead-letter queue. Pesan dalam topik dead-letter queue tidak memicu tugas connector Function Compute lagi. Kami merekomendasikan agar Anda mengonfigurasi alert untuk topik dead-letter queue guna memantau statusnya secara real-time dan menangani exception tepat waktu.
2
Setelah connector dibuat, Anda dapat melihatnya di halaman Connectors.
-
-
-
Di halaman Connectors, temukan connector yang baru saja Anda buat dan klik Deploy di kolom Actions.
Untuk mengonfigurasi resource Function Compute, pilih di kolom Actions. Anda akan diarahkan ke Konsol Function Compute untuk menyelesaikan konfigurasi.
Kirim pesan uji
Setelah Anda mendeploy Function Compute sink connector, Anda dapat mengirim pesan ke topik sumber di instans ApsaraMQ for Kafka untuk memverifikasi bahwa data disinkronkan ke Function Compute.
Di halaman Connectors, temukan connector target dan klik Test di kolom Actions.
-
Di panel Send Message, kirim pesan uji.
-
Untuk Sending Method, pilih Console.
-
Di bidang Message Key, masukkan kunci pesan, misalnya
demo. -
Di bidang Message Content, masukkan konten pesan, misalnya
{"key": "test"}. -
Untuk Send to Specified Partition, pilih opsi:
-
Klik Yes dan masukkan ID partisi, misalnya
0, di bidang Partition ID. Untuk menemukan ID partisi, lihat Lihat status partisi. -
Klik No untuk mengirim pesan tanpa menentukan partisi.
-
-
-
Untuk Sending Method, pilih Docker, lalu jalankan perintah dari bagian Run the Docker container to produce a sample message.
-
Untuk Sending Method, pilih SDK. Lalu, pilih SDK dan metode integrasi untuk bahasa atau framework pilihan Anda untuk mengirim pesan.
-
Log fungsi
Setelah mengirim pesan ke topik sumber di instans ApsaraMQ for Kafka Anda, periksa log fungsi untuk memverifikasi bahwa fungsi menerimanya. Untuk informasi selengkapnya, lihat Konfigurasi log.
Pesan uji Anda muncul dalam log.
Di halaman detail fungsi, klik tab Log query dan pilih Advanced query. Pilih function-log sebagai Logstore. Bidang message dalam log berisi pesan dari topik Kafka, misalnya, [INFO] hello world:[{"key":"1","offset":1,"partition":0,"timestamp":1605598174308,"topic":"fc-test-input","value":"1"}]. Hal ini mengonfirmasi bahwa fungsi berhasil menerima pesan dari pemicu Kafka.