Konfigurasi Pub/Sub

Anda dapat mengonfigurasi pemformatan publikasi Pub/Sub transkoder Mainframe Connector dengan menambahkan konfigurasi yang diperlukan dalam file JSON, dan menentukan file ini menggunakan opsi --input-parameter pubsub-publish-configuration=DataPath dengan perintah qsam decode. Anda harus menentukan konfigurasi publikasi Pub/Sub seperti yang ditentukan di bagian PubsubConfiguration.

Halaman ini menjelaskan berbagai parameter Pub/Sub yang dapat Anda konfigurasi sebagai parameter input untuk transcoding. Objek PubsubPublishConfiguration berisi semua opsi konfigurasi dekoder Pub/Sub.

PubsubPublishConfiguration

Objek PubsubPublishConfiguration memungkinkan Anda mengonfigurasi pesan yang dikirim ke Pub/Sub dan digunakan dengan perintah qsam decode.

Representasi JSON
{
    "attributes_configuration": object (AttributesConfiguration),
    "batching_settings": object (BatchingSettings),
    "concurrency_control_settings": object (ConcurrencyControlSettings),
    "flow_control_settings": object (FlowControlSettings),
    "ordering_key_configuration": object (OrderingKeyConfiguration),
    "spillover_configuration": object (SpilloverConfiguration)
}
Kolom
attributes_configuration

object (AttributesConfiguration)

Tentukan konfigurasi atribut. Anda dapat menentukan konfigurasi sebagai pasangan nilai kunci yang dapat dilampirkan ke pesan Pub/Sub. Konfigurasi ini kemudian dapat digunakan untuk pemfilteran pesan atau untuk menyampaikan metadata tambahan.

batching_settings

object (BatchingSettings)

Tentukan setelan batch untuk memublikasikan pesan. Secara default, pemrosesan batch dinonaktifkan. Untuk mengetahui informasi selengkapnya, lihat Memublikasikan dengan setelan batch.

concurrency_control_settings

object (ConcurrencyControlSettings)

Tentukan setelan konkurensi dan pemrosesan pesan untuk klien penayang. Setelan ini mengontrol paralelisme untuk memublikasikan pesan, mengonfirmasi pengiriman yang berhasil, dan menangani error apa pun selama proses publikasi. Untuk mengetahui informasi selengkapnya, lihat Kontrol konkurensi.

flow_control_settings

object (FlowControlSettings)

Tentukan setelan kontrol alur yang akan digunakan untuk memublikasikan pesan. Secara default, setelan kontrol alur dinonaktifkan. Untuk mengetahui informasi selengkapnya, lihat Memublikasikan pesan dengan setelan kontrol alur.

ordering_key_configuration

object (OrderingKeyConfiguration)

Tentukan konfigurasi kunci pengurutan. Konfigurasi ini memverifikasi bahwa pesan dengan kunci pengurutan yang sama dikirimkan secara berurutan. Jika Anda tidak menyetel konfigurasi ini, urutan pesan tidak dijamin.

spillover_configuration

object (SpilloverConfiguration)

Tentukan konfigurasi cara pesan pelimpahan dikirim. Jika tidak ditetapkan, pesan pelimpahan akan dikirim ke topik input dengan akhiran _spillover.
Misalnya, jika topik input adalah projects/project_example/topics/topic_example, topik pelimpahan default adalah projects/project_example/topics/topic_example_spillover.

AttributesConfiguration

Pesan AttributesConfiguration menentukan serangkaian atribut tetap yang menentukan cara atribut diperoleh untuk pesan Pub/Sub.

Representasi JSON
{
    "attributes": object (Attributes)
}
Kolom
attributes

object (Attributes)

Kumpulan atribut nilai kunci tetap yang akan dilampirkan ke pesan Pub/Sub.

Atribut

Pesan Attributes menentukan kumpulan key-value pair Attribute yang menentukan cara atribut ditentukan.

Representasi JSON
{
    "attribute": object (Attribute)
}
Kolom
attribute

object (Attribute)

Tentukan kumpulan key-value pair.

Atribut

Pesan Attribute merepresentasikan satu pasangan kunci-nilai yang digunakan sebagai atribut pesan Pub/Sub.

Representasi JSON
{
    "key": string,
    "value": string
}
Kolom
key

string

Tentukan kunci atribut.

value

string

Tentukan nilai atribut.

BatchingSettings

Pesan BatchingSettings memungkinkan Anda menentukan setelan batch untuk memublikasikan pesan ke Pub/Sub. Anda harus memastikan setelan batch dikonfigurasi untuk mematuhi kuota dan batas Pub/Sub yang ditentukan. Untuk menonaktifkan pemrosesan batch, tetapkan message_count_threshold=1.

Representasi JSON
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
Kolom
delay_threshold

string

Tentukan batas penundaan yang akan digunakan untuk batch processing. Setelah jangka waktu yang ditentukan oleh delay_threshold berlalu (dihitung dari pesan pertama yang ditambahkan), pesan akan digabungkan dalam batch dan dikirim. Sebaiknya Anda tidak menetapkan nilai ini terlalu tinggi, karena panggilan mungkin tidak akan pernah selesai. Jika memprioritaskan pemrosesan real-time atau hampir real-time, Anda akan menginginkan nilai minimum penundaan yang lebih rendah (beberapa puluh atau ratusan milidetik). Hal ini memastikan pesan dikirim dengan cepat. Jika Anda menangani batch processing skala besar yang pengiriman langsungnya tidak terlalu penting, nilai minimum yang lebih tinggi (beberapa detik) mungkin dapat diterima untuk memungkinkan batch yang lebih besar dan lebih efisien. Untuk mengetahui informasi selengkapnya tentang format durasi, lihat Duration. Jika nilai minimum penundaan 0 detik diberikan, nilai tersebut dianggap seolah-olah nilai minimum penundaan tidak diberikan, dan nilai default akan digunakan. Nilai defaultnya adalah 1 md.

element_count_threshold

long

Tentukan batas jumlah pesan yang akan digunakan untuk batch processing. Setelah jumlah pesan yang ditentukan oleh message_count_threshold terkumpul, pesan tersebut akan digabungkan dalam batch dan dikirim, meskipun batas waktu tunda belum berlalu. Jika pesan Anda selalu kecil, sebaiknya tingkatkan nilai minimum jumlah pesan. Nilai default adalah 1.

request_byte_threshold

long

Tentukan ukuran maksimum dalam byte pesan yang akan dikumpulkan sebelum mengirim batch ke Pub/Sub. Hal ini berlaku meskipun batas jumlah pesan atau penundaan belum terlampaui. Jika pesan Anda selalu kecil, pertimbangkan untuk menaikkan nilai minimum byte. Nilai defaultnya adalah 1 byte.

ConcurrencyControlSettings

Pesan ConcurrencyControlSettings memungkinkan Anda mengonfigurasi paralelisme penerbitan pesan. Setelan ini memengaruhi jumlah pesan yang dapat dikirim secara bersamaan.

Representasi JSON
{
    "publishing_threads": int,
    "result_processing_threads": int
}
Kolom
publishing_threads

int

Tentukan jumlah thread pemrosesan untuk memublikasikan pesan. Nilai harus sama dengan atau kurang dari jumlah core yang tersedia. Jika jumlah thread adalah 0, publikasi ditangani secara serentak.

result_processing_threads

int

Tentukan jumlah thread untuk memproses hasil pesan Pub/Sub. Hal ini mencakup mengonfirmasi pesan yang berhasil dikirim dan menangani error yang terjadi selama publikasi. Nilai 0 berarti paralelisme pemrosesan hasil ditangani secara sinkron. Nilai default adalah 1.

FlowControlSettings

Pesan FlowControlSettings memungkinkan Anda menentukan cara klien penayang mengelola alur pesan ke Pub/Sub. Setelan ini mencegah klien menggunakan resource secara berlebihan atau membebani Pub/Sub.

Representasi JSON
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
Kolom
limit_exceeded_behavior

enum (LimitExceededBehavior)

Tentukan perilaku saat batas kontrol alur terlampaui. Nilai defaultnya adalah BLOCK.

max_outstanding_element_count

long

Tentukan jumlah maksimum pesan yang dapat belum diproses (dikirim tetapi belum dikonfirmasi oleh Pub/Sub). Jika mainframe Anda memiliki memori yang cukup besar dan Anda ingin mendorong throughput yang sangat tinggi, Anda dapat mencoba meningkatkan jumlahnya.

max_outstanding_request_bytes

long

Menentukan ukuran total maksimum dalam byte untuk pesan yang belum terkirim.

OrderingKeyConfiguration

Pesan OrderingKeyConfiguration menentukan string statis sebagai kunci pengurutan yang menentukan cara penentuan kunci pengurutan untuk pesan Pub/Sub.

Representasi JSON
{
    "key": string
}
Kolom
key

string

Nilai string yang akan digunakan sebagai kunci pengurutan untuk pesan Pub/Sub.

SpilloverConfiguration

Pesan SpilloverConfiguration menentukan cara menentukan topik alternatif untuk pesan pelimpahan. Anda dapat menentukan nama topik lengkap atau sufiks untuk ditambahkan ke nama topik input. Kedua opsi ini bertolak belakang; Anda harus memilih salah satunya.

Representasi JSON
{
    "name": string,
    "suffix": string
}
Kolom
name

string

Tentukan nama resource lengkap topik alternatif untuk pesan spillover dalam format projects/{project}/topics/{topic}.

suffix

string

Tentukan akhiran yang akan ditambahkan ke nama topik input untuk pesan limpahan. Misalnya, jika topik input adalah projects/project_example/topics/my-topic, dan sufiksnya adalah _errors, topik pelimpahannya adalah projects/project_example/topics/my-topic_errors.

Enum

LimitExceededBehavior

Enum LimitExceededBehavior memungkinkan Anda mengonfigurasi perilaku saat batas kontrol alur terlampaui.

Enum
BLOCK Penerbit Pub/Sub akan diblokir jika batas terlampaui. Tindakan ini mencegah publikasi pesan lebih lanjut hingga resource tersedia.
IGNORE Publisher Pub/Sub akan mengabaikan batas dan terus memublikasikan saat batas terlampaui. Hal ini dapat menyebabkan peningkatan konsumsi resource.
THROW_EXCEPTION Publisher Pub/Sub akan memunculkan pengecualian saat batas terlampaui, yang menunjukkan kegagalan untuk memublikasikan.