ApsaraMQ for Kafka menyediakan fitur kueri pesan untuk mengkueri pesan berdasarkan offset atau titik waktu di konsol ApsaraMQ for Kafka. Jika fitur ini tidak memenuhi kebutuhan Anda, gunakan fitur pengambilan pesan yang disediakan oleh ApsaraMQ for Kafka. Fitur ini memungkinkan Anda mengambil pesan berdasarkan partisi, rentang offset, rentang waktu, serta kata kunci dari kunci dan nilai pesan. Topik ini menjelaskan cara mengaktifkan fitur pengambilan pesan, menentukan kondisi pencarian, menangguhkan, melanjutkan, dan menghapus tugas pengambilan pesan.
Prasyarat
Sebuah topik dibuat sebagai sumber data pada instance ApsaraMQ for Kafka. Untuk informasi lebih lanjut, lihat Langkah 1: Buat sebuah topik.
CatatanInstance Serverless ApsaraMQ for Kafka tidak mendukung fitur pengambilan pesan.
Fitur pengambilan pesan tersedia di wilayah tempat instance ApsaraMQ for Kafka berada. Untuk informasi tentang wilayah-wilayah yang didukung, lihat Wilayah yang Didukung.
Informasi Latar Belakang
Fitur pengambilan pesan dari ApsaraMQ for Kafka didasarkan pada fitur konektor dari ApsaraMQ for Kafka dan fitur indeks dari Tablestore. Pesan dalam topik sumber dituangkan ke dalam konektor dan diteruskan ke tabel Tablestore. Anda dapat menggunakan fitur indeks yang disediakan oleh Tablestore untuk mengambil pesan.
Mengaktifkan fitur pengambilan pesan membuat sebuah konektor yang digunakan untuk menyinkronkan data dari ApsaraMQ for Kafka ke Tablestore. Nama konektor memiliki format ots-ms-{Nama topik}-{Enam karakter acak}. Untuk informasi tentang cara melihat detail tugas pengambilan pesan, lihat Lihat detail tugas pengambilan pesan.
Pertama kali Anda mengaktifkan fitur pengambilan pesan, ApsaraMQ for Kafka secara otomatis mengaktifkan Tablestore untuk Anda dan membuat instance Tablestore dan tabel di wilayah yang sama. Satu tabel Tablestore dibuat untuk setiap topik dengan fitur pengambilan pesan diaktifkan. Nama instance Tablestore dan tabel yang dibuat secara otomatis memiliki format berikut:
Nama instance: kfk-{12 karakter terakhir dari nama instance ApsaraMQ for Kafka}
Nama tabel: {Nama topik}:kafka_topic_{Nama topik}_{Enam karakter acak}
Untuk setiap topik dengan fitur pengambilan pesan diaktifkan, ApsaraMQ for Kafka secara otomatis membuat empat topik dan dua grup pada instance yang sesuai. Topik dan grup tersebut digunakan untuk mencatat konfigurasi dan status konektor. Nama topik dan grup yang dibuat memiliki format berikut:
Topik yang digunakan untuk mencatat offset konsumen konektor: connect-offset-{Nama konektor}
Topik yang digunakan untuk mencatat konfigurasi konektor: connect-config-{Nama konektor}
Topik yang digunakan untuk mencatat status konektor: connect-status-{Nama konektor}
Topik yang digunakan untuk mencatat data antrian pesan gagal dan pengecualian: connect-error-{Nama konektor}
Grup konsumen untuk konektor: connect-{Nama konektor}
Grup untuk kluster tugas: connect-cluster-{Nama tugas}
Penagihan
Fitur pengambilan pesan dari ApsaraMQ for Kafka sedang dalam pratinjau publik. ApsaraMQ for Kafka tidak membebankan biaya selama periode pratinjau publik.
Selama pratinjau publik fitur pengambilan pesan, Anda tidak dikenakan biaya untuk instance dan tabel yang dibuat secara otomatis di Tablestore.
Alibaba Cloud tidak menyediakan perjanjian tingkat layanan (SLA) untuk fitur pengambilan pesan. Untuk informasi tentang SLA dan penagihan layanan lainnya yang diperlukan untuk menggunakan fitur pengambilan pesan, lihat dokumentasi layanan terkait.
Catatan Penggunaan
Secara default, Anda dapat mengaktifkan fitur pengambilan pesan hingga tiga topik pada instance ApsaraMQ for Kafka pada saat yang bersamaan.
Nilai dalam kolom atribut tipe STRING di Tablestore tidak boleh melebihi 2 MB. Pesan yang ukurannya melebihi 2 MB tidak dapat disinkronkan atau diambil.
Tablestore menyimpan pesan yang disinkronkan dari instance ApsaraMQ for Kafka selama periode waktu yang sama dengan ApsaraMQ for Kafka menyimpan pesan. Setelah periode retensi berakhir, Tablestore secara otomatis membersihkan pesan dan menghapus indeks terkait. Untuk informasi tentang konfigurasi dan deskripsi periode retensi pesan di ApsaraMQ for Kafka, lihat Ubah konfigurasi untuk pesan.
Kebijakan kedaluwarsa data Tablestore berbeda dari ApsaraMQ for Kafka. Oleh karena itu, pesan yang diambil oleh setiap tugas pengambilan pesan mungkin berbeda dari pesan yang memenuhi kondisi pencarian tertentu. Dalam hal ini, hasil akhir pengambilan yang berlaku.
Prosedur untuk Pengambilan Pesan
Langkah 1: Aktifkan fitur pengambilan pesan
Setelah mengaktifkan fitur pengambilan pesan untuk topik pada instance ApsaraMQ for Kafka, Anda dapat mengambil pesan dalam topik berdasarkan kebutuhan bisnis Anda.
Pertama kali Anda mengaktifkan fitur pengambilan pesan untuk topik pada instance ApsaraMQ for Kafka, ApsaraMQ for Kafka secara otomatis membuat instance Tablestore yang berada di wilayah yang sama dengan instance ApsaraMQ for Kafka.
Pertama kali Anda mengaktifkan fitur pengambilan pesan untuk topik pada instance ApsaraMQ for Kafka, ApsaraMQ for Kafka secara otomatis membuat peran terkait layanan AliyunServiceRoleForAlikafkaConnector untuk memungkinkan Anda menggunakan fitur konektor. Jika peran terkait layanan telah dibuat, ApsaraMQ for Kafka tidak akan membuat peran tersebut lagi. Untuk informasi lebih lanjut, lihat Peran Terkait Layanan.
Masuk ke Konsol ApsaraMQ for Kafka.
Di bagian Resource Distribution halaman Overview, pilih wilayah tempat instance ApsaraMQ for Kafka yang ingin Anda kelola berada.
Di panel navigasi sisi kiri, klik Instances.
Pada halaman Instances, klik nama instance yang ingin Anda kelola.
Di panel navigasi sisi kiri, klik Message Retrieval. Pada halaman yang muncul, klik Enable Message Retrieval.
Di panel Enable Message Retrieval, konfigurasikan parameter dan klik OK.
CatatanPertama kali Anda mengaktifkan fitur pengambilan pesan untuk topik pada instance ApsaraMQ for Kafka, muncul pesan yang menunjukkan bahwa Anda belum mengaktifkan fitur konektor untuk instance tersebut setelah Anda klik Enable Message Retrieval. Dalam hal ini, klik OK di pesan tersebut lalu konfigurasikan parameter di panel Enable Message Retrieval.

Pada halaman Message Retrieval, Anda dapat melihat topik untuk mana Anda mengaktifkan fitur pengambilan pesan.
Langkah 2: Kirim pesan uji pesan
Setelah mengaktifkan fitur pengambilan pesan untuk topik pada instance ApsaraMQ for Kafka, Anda dapat mengirim pesan ke topik untuk menguji apakah tugas pengambilan pesan telah dibuat.
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan klik Details di kolom Actions.
Di sudut kanan atas halaman Task Details, klik Test.
Di panel Send Message, konfigurasikan parameter dan klik OK.
Di bidang Message Key, masukkan kunci pesan. Contoh: demo.
Di bidang Message Content, masukkan isi pesan. Contoh: {"key": "test"}.
Konfigurasikan parameter Send to Specified Partition untuk menentukan apakah akan mengirim pesan uji ke partisi tertentu.
Jika Anda ingin mengirim pesan uji ke partisi tertentu, klik Yes dan masukkan ID partisi di bidang Partition ID. Contoh: 0. Untuk informasi tentang cara menanyakan ID partisi, lihat Lihat status partisi.
Jika Anda tidak ingin mengirim pesan uji ke partisi tertentu, klik No.
Langkah 3: Ambil pesan
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan klik Search di kolom Actions.
Di panel Search, lakukan operasi berikut untuk menentukan kondisi pencarian: Pilih item dari daftar drop-down kondisi pencarian, klik Add Search Condition, tentukan kondisi pencarian di kolom Value, lalu klik OK.
CatatanSaat menentukan kondisi pencarian, Anda dapat memilih satu atau lebih nilai, termasuk Partition, Offset Range, Time Range, Key, dan Value.
Kami sarankan Anda menggunakan pengenal bisnis unik sebagai nilai kunci saat mengirim pesan. Dengan cara ini, pesan dapat dicocokkan secara tepat selama pencarian.
Pada halaman Topic Search, lihat pesan yang diambil.
CatatanHingga 10 pesan dapat ditampilkan dalam hasil pengambilan. Kami sarankan Anda menentukan kondisi pencarian yang akurat untuk pencocokan tepat.
Hingga 1 KB isi setiap pesan yang diambil dapat ditampilkan di konsol ApsaraMQ for Kafka. Jika pesan yang diambil melebihi 1 KB ukurannya, sistem secara otomatis memotong isi tersebut. Jika Anda ingin melihat isi pesan lengkap, unduh pesan tersebut.
Operasi Terkait
Lihat detail tugas pengambilan pesan
Setelah mengaktifkan fitur pengambilan pesan untuk topik, tugas pengambilan pesan secara otomatis dibuat. Anda dapat melihat detail tugas tersebut, seperti topik dan grup yang dibuat secara otomatis pada instance ApsaraMQ for Kafka, serta nama instance dan tabel yang dibuat secara otomatis di Tablestore. Anda juga dapat menavigasi ke halaman detail tabel Tablestore dari halaman Detail Tugas.
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan klik Details di kolom Actions.

Lihat detail konsumsi
Setelah mengaktifkan fitur pengambilan pesan untuk topik, Anda dapat melihat kemajuan konsumsi dari grup aktif di setiap partisi topik. Ini membantu Anda mendapatkan informasi tentang konsumsi dan akumulasi pesan.
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan klik Consumption Progress di kolom Actions.
Pada halaman Detail Konsumen, Anda dapat melihat status konsumsi grup yang berlangganan topik di setiap partisi topik.

Tangguhkan tugas pengambilan pesan
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan pilih di kolom Actions.
Di pesan yang muncul, klik OK.
Lanjutkan tugas pengambilan pesan
Anda dapat melanjutkan tugas pengambilan pesan yang ditangguhkan berdasarkan kebutuhan bisnis Anda.
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan pilih di kolom Actions.
Di pesan yang muncul, klik OK.
Hapus tugas pengambilan pesan
Setelah menghapus tugas pengambilan pesan untuk topik, tabel Tablestore terkait dan indeks pencarian juga dihapus. Topik tersebut tidak lagi menyediakan fitur pengambilan pesan. Jika Anda ingin menggunakan fitur pengambilan pesan untuk topik tersebut lagi, buat ulang tugas pengambilan pesan dan tunggu hingga sinkronisasi data selesai.
Pada halaman Message Retrieval, temukan topik yang ingin Anda kelola dan lakukan salah satu operasi berikut berdasarkan status tugas pengambilan pesan:
Jika tugas tidak dalam status Running atau Suspended, klik Delete di kolom Actions.
Jika tugas dalam status Running atau Suspended, pilih di kolom Actions.
Di pesan yang muncul, klik OK.
Pada halaman Message Retrieval, Anda tidak dapat lagi melihat topik untuk mana tugas pengambilan pesan telah dihapus.