Pub/Sub-Konfiguration

Sie können die Formatierung der Pub/Sub-Veröffentlichung des Mainframe Connector-Transcoders konfigurieren, indem Sie die erforderliche Konfiguration in einer JSON-Datei hinzufügen und diese Datei mit der Option --input-parameter pubsub-publish-configuration=DataPath mit dem Befehl qsam decode angeben. Sie müssen die Pub/Sub-Veröffentlichungskonfiguration wie im Abschnitt PubsubConfiguration beschrieben definieren.

Auf dieser Seite werden die verschiedenen Pub/Sub-Parameter beschrieben, die Sie als Eingabeparameter für die Transcodierung konfigurieren können. Das PubsubPublishConfiguration-Objekt enthält alle Konfigurationsoptionen für den Pub/Sub-Decoder.

PubsubPublishConfiguration

Mit dem PubsubPublishConfiguration-Objekt können Sie die Nachrichten konfigurieren, die an Pub/Sub gesendet werden. Es wird mit dem Befehl qsam decode verwendet.

JSON-Darstellung
{
    "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)
}
Felder
attributes_configuration

object (AttributesConfiguration)

Geben Sie die Attributkonfiguration an. Sie können die Konfiguration als Schlüssel/Wert-Paare angeben, die an eine Pub/Sub-Nachricht angehängt werden können. Die Konfiguration kann dann zum Filtern von Nachrichten oder zum Übermitteln zusätzlicher Metadaten verwendet werden.

batching_settings

object (BatchingSettings)

Geben Sie die Batcheinstellungen für das Veröffentlichen von Nachrichten an. Die Batchverarbeitung ist standardmäßig deaktiviert. Weitere Informationen finden Sie unter Mit Batch-Einstellungen veröffentlichen.

concurrency_control_settings

object (ConcurrencyControlSettings)

Geben Sie die Einstellungen für die Parallelität und Nachrichtenverarbeitung für den Publisher-Client an. Mit diesen Einstellungen wird die Parallelität für das Veröffentlichen von Nachrichten, das Bestätigen erfolgreicher Zustellungen und die Verarbeitung von Fehlern während des Veröffentlichungsprozesses gesteuert. Weitere Informationen finden Sie unter Gleichzeitigkeitssteuerung.

flow_control_settings

object (FlowControlSettings)

Geben Sie die Einstellungen für die Ablaufsteuerung an, die für die Veröffentlichung von Nachrichten verwendet werden sollen. Standardmäßig sind die Einstellungen für die Ablaufsteuerung deaktiviert. Weitere Informationen finden Sie unter Nachrichten mit Einstellungen für die Ablaufsteuerung veröffentlichen.

ordering_key_configuration

object (OrderingKeyConfiguration)

Geben Sie die Konfiguration für den Sortierschlüssel an. Diese Konfiguration prüft, ob Nachrichten mit demselben Sortierschlüssel in der richtigen Reihenfolge zugestellt werden. Wenn Sie diese Konfiguration nicht festlegen, ist die Reihenfolge der Nachrichten nicht garantiert.

spillover_configuration

object (SpilloverConfiguration)

Geben Sie die Konfiguration für das Senden von Spillover-Nachrichten an. Wenn nicht festgelegt, werden Spillover-Nachrichten an das Eingabethema mit dem Suffix _spillover gesendet.
Wenn das Eingabethema beispielsweise projects/project_example/topics/topic_example ist, wäre das Standard-Spillover-Thema projects/project_example/topics/topic_example_spillover.

AttributesConfiguration

Die AttributesConfiguration-Nachricht gibt einen festen Satz von Attributen an, die definieren, wie Attribute für Pub/Sub-Nachrichten abgerufen werden.

JSON-Darstellung
{
    "attributes": object (Attributes)
}
Felder
attributes

object (Attributes)

Eine Sammlung von Attributen mit festen Schlüssel/Wert-Paaren, die an die Pub/Sub-Nachrichten angehängt werden sollen.

Attribute

Die Attributes-Nachricht gibt eine Sammlung von Attribute-Schlüssel/Wert-Paaren an, die definieren, wie die Attribute bestimmt werden.

JSON-Darstellung
{
    "attribute": object (Attribute)
}
Felder
attribute

object (Attribute)

Geben Sie eine Sammlung von Schlüssel/Wert-Paaren an.

Attribut

Die Attribute-Nachricht stellt ein einzelnes Schlüssel/Wert-Paar dar, das als Pub/Sub-Nachrichtenattribut verwendet wird.

JSON-Darstellung
{
    "key": string,
    "value": string
}
Felder
key

string

Geben Sie den Schlüssel des Attributs an.

value

string

Geben Sie den Wert des Attributs an.

BatchingSettings

Mit der BatchingSettings-Nachricht können Sie die Batch-Einstellungen für das Veröffentlichen von Nachrichten in Pub/Sub angeben. Prüfen Sie, ob Ihre Batch-Einstellungen so konfiguriert sind, dass die definierten Pub/Sub-Kontingente und ‑Limits eingehalten werden. Wenn Sie die Batchverarbeitung deaktivieren möchten, legen Sie message_count_threshold=1 fest.

JSON-Darstellung
{
    "delay_threshold": string,
    "element_count_threshold": long,
    "request_byte_threshold": long
}
Felder
delay_threshold

string

Geben Sie den Verzögerungsschwellenwert an, der für die Batchverarbeitung verwendet werden soll. Nach Ablauf der durch delay_threshold definierten Zeit (ab der ersten hinzugefügten Nachricht) werden die Nachrichten in einem Batch zusammengefasst und gesendet. Wir empfehlen, diesen Wert nicht zu hoch anzusetzen, da Anrufe sonst möglicherweise nie beendet werden. Wenn Sie die Verarbeitung in Echtzeit oder nahezu in Echtzeit priorisieren, sollten Sie einen niedrigeren Verzögerungsschwellenwert (einige zehn oder hundert Millisekunden) festlegen. So wird sichergestellt, dass Nachrichten schnell gesendet werden. Wenn Sie es mit der Batchverarbeitung in großem Umfang zu tun haben, bei der eine sofortige Zustellung nicht kritisch ist, kann ein höherer Schwellenwert (einige Sekunden) akzeptabel sein, um größere, effizientere Batches zu ermöglichen. Weitere Informationen zum Dauerformat finden Sie unter Duration. Wenn ein Verzögerungsschwellenwert von 0 Sekunden angegeben wird, wird dies so behandelt, als wäre kein Verzögerungsschwellenwert angegeben worden, und der Standardwert wird verwendet. Der Standardwert ist 1 ms.

element_count_threshold

long

Geben Sie den Schwellenwert für die Anzahl der Nachrichten an, der für die Batchverarbeitung verwendet werden soll. Nachdem die durch message_count_threshold definierte Anzahl von Nachrichten erreicht wurde, werden sie in einem Batch zusammengefasst und gesendet, auch wenn der Verzögerungsschwellenwert noch nicht überschritten wurde. Wenn Ihre Nachrichten durchgehend klein sind, sollten Sie den Schwellenwert für die Anzahl der Nachrichten erhöhen. Der Standardwert ist 1.

request_byte_threshold

long

Geben Sie die maximale Größe in Byte für Nachrichten an, die gesammelt werden sollen, bevor ein Batch an Pub/Sub gesendet wird. Das gilt auch dann, wenn die Grenzwerte für Verzögerung oder Anzahl der Nachrichten noch nicht überschritten wurden. Wenn Ihre Nachrichten immer klein sind, sollten Sie den Byte-Schwellenwert erhöhen. Der Standardwert ist 1 Byte.

ConcurrencyControlSettings

Mit der ConcurrencyControlSettings-Nachricht können Sie die Parallelität der Nachrichtenveröffentlichung konfigurieren. Diese Einstellungen wirken sich darauf aus, wie viele Nachrichten gleichzeitig gesendet werden können.

JSON-Darstellung
{
    "publishing_threads": int,
    "result_processing_threads": int
}
Felder
publishing_threads

int

Geben Sie die Anzahl der Verarbeitungsthreads zum Veröffentlichen von Nachrichten an. Der Wert sollte gleich oder kleiner als die Anzahl der verfügbaren Kerne sein. Wenn die Anzahl der Threads 0 ist, wird die Veröffentlichung synchron ausgeführt.

result_processing_threads

int

Geben Sie die Anzahl der Threads für die Verarbeitung von Pub/Sub-Nachrichtenergebnissen an. Dazu gehört, dass Sie erfolgreich gesendete Nachrichten bestätigen und alle Fehler beheben, die während der Veröffentlichung auftreten. Ein Wert von 0 bedeutet, dass die Parallelität der Ergebnisverarbeitung synchron erfolgt. Der Standardwert ist 1.

FlowControlSettings

Mit der FlowControlSettings-Nachricht können Sie angeben, wie der Publisher-Client den Nachrichtenfluss zu Pub/Sub verwaltet. Diese Einstellungen verhindern, dass der Client zu viele Ressourcen verbraucht oder Pub/Sub überlastet.

JSON-Darstellung
{
    "limit_exceeded_behavior": enum (LimitExceededBehavior),
    "max_outstanding_element_count": long,
    "max_outstanding_request_bytes": long
}
Felder
limit_exceeded_behavior

enum (LimitExceededBehavior)

Geben Sie das Verhalten an, wenn die Grenzwerte für die Ablaufsteuerung überschritten werden. Der Standardwert ist BLOCK.

max_outstanding_element_count

long

Geben Sie die maximale Anzahl von Nachrichten an, die ausstehend sein können (gesendet, aber noch nicht von Pub/Sub bestätigt). Wenn Ihr Mainframe viel Arbeitsspeicher hat und Sie einen sehr hohen Durchsatz erzielen möchten, können Sie die Anzahl erhöhen.

max_outstanding_request_bytes

long

Gibt die maximale Gesamtgröße ausstehender Nachrichten in Byte an.

OrderingKeyConfiguration

Die OrderingKeyConfiguration-Nachricht gibt einen statischen String als Sortierschlüssel an, der definiert, wie der Sortierschlüssel für Pub/Sub-Nachrichten bestimmt wird.

JSON-Darstellung
{
    "key": string
}
Felder
key

string

Der Stringwert, der als Sortierschlüssel für die Pub/Sub-Nachricht verwendet werden soll.

SpilloverConfiguration

In der SpilloverConfiguration-Meldung wird beschrieben, wie Sie ein alternatives Thema für Spillover-Nachrichten angeben. Sie können entweder einen vollständigen Themennamen oder ein Suffix angeben, das an den eingegebenen Themennamen angehängt werden soll. Diese beiden Optionen schließen sich gegenseitig aus. Sie müssen eine auswählen.

JSON-Darstellung
{
    "name": string,
    "suffix": string
}
Felder
name

string

Geben Sie den vollständigen Ressourcennamen eines alternativen Themas für Spillover-Nachrichten im Format projects/{project}/topics/{topic} an.

suffix

string

Geben Sie ein Suffix an, das an den Namen des Eingabethemas für Spillover-Nachrichten angehängt werden soll. Wenn das Eingabethema beispielsweise projects/project_example/topics/my-topic und das Suffix _errors ist, wäre das Spillover-Thema projects/project_example/topics/my-topic_errors.

Enums

LimitExceededBehavior

Mit dem Enum LimitExceededBehavior können Sie das Verhalten konfigurieren, wenn die Grenzwerte für die Ablaufsteuerung überschritten werden.

Enums
BLOCK Der Pub/Sub-Publisher wird blockiert, wenn Limits überschritten werden. Dadurch wird verhindert, dass weitere Nachrichten veröffentlicht werden, bis Ressourcen verfügbar sind.
IGNORE Der Pub/Sub-Publisher ignoriert Limits und veröffentlicht weiterhin, wenn Limits überschritten werden. Dies kann zu einem erhöhten Ressourcenverbrauch führen.
THROW_EXCEPTION Der Pub/Sub-Publisher löst eine Ausnahme aus, wenn Limits überschritten werden, was darauf hinweist, dass die Veröffentlichung fehlgeschlagen ist.