Конфигурация GRPC для адаптера под формат CloudEvent#

Данный раздел применим для роли Администратор.

Предусловия#

Не требуются.

Последовательность выполнения#

Адаптер EVTA поддерживает работу с помощью gRPC взаимодействия. Если в конфигурационном файле *.conf в поле server: type установлено grpc, то адаптер EVTA позволяет обращаться извне к брокерам сообщений при помощи gRPC взаимодействия соответственно.

Для настройки gRPC-взаимодействия под формат CloudEvent используется протокол:

syntax = "proto3";

import "spec.proto";

option java_multiple_files = true;
option java_package = "ru.sbt.ss.event.adapter";
option java_outer_classname = "EventAdapterServiceApi";

package ru.sbt.ss.event.adapter;

service PublishService {
    rpc Publish (stream io.cloudevents.v1.CloudEvent) returns (stream StatusWithId) {
    }
}

service SubscribeService {
    rpc Subscribe (SubscribeSettings) returns (stream io.cloudevents.v1.CloudEvent) {
    }
    rpc Commit (CommitRequest) returns (Status) {}
}

message SubscribeSettings {
    string source = 1;
    string memberId = 2;
}

message CommitRequest {
    SubscribeSettings subscribeSettings = 1;
    string id = 2;
}

enum StatusCode {
    STATUS_CODE_UNSPECIFIED = 0;
    FAILED = 1;
    SUCCESS = 2;
}

message Status {
    StatusCode status = 1;
    string message = 2;
}

message StatusWithId {
    Status status = 1;
    string id = 2;
}

Для публикации сообщений используется метод:

  • Publish — непосредственно публикация сообщений, публикация сообщений осуществляется потоком. Возвращает поток сообщений с 2 параметрами: статус сообщения и ID, по которому можно идентифицировать сообщение.

Для подписки на сообщения используются 2 метода:

  • Subscribe — подписка на поток сообщений. Возвращает сообщение и его ID;

  • Commit — подтверждение о вычитке сообщений. Возвращает статус коммита.

Правила эксплуатации#

Не требуется.

Результат#

Конфигурация GRPC для адаптера под формат CloudEvent настроена.