123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- syntax = "proto3";
- package messaging_pb;
- option go_package = "github.com/chrislusf/seaweedfs/weed/pb/messaging_pb";
- option java_package = "seaweedfs.client";
- option java_outer_classname = "MessagingProto";
- //////////////////////////////////////////////////
- service SeaweedMessaging {
- rpc Subscribe (stream SubscriberMessage) returns (stream BrokerMessage) {
- }
- rpc Publish (stream PublishRequest) returns (stream PublishResponse) {
- }
- rpc DeleteTopic (DeleteTopicRequest) returns (DeleteTopicResponse) {
- }
- rpc ConfigureTopic (ConfigureTopicRequest) returns (ConfigureTopicResponse) {
- }
- rpc GetTopicConfiguration (GetTopicConfigurationRequest) returns (GetTopicConfigurationResponse) {
- }
- rpc FindBroker (FindBrokerRequest) returns (FindBrokerResponse) {
- }
- }
- //////////////////////////////////////////////////
- message SubscriberMessage {
- message InitMessage {
- string namespace = 1;
- string topic = 2;
- int32 partition = 3;
- enum StartPosition {
- LATEST = 0; // Start at the newest message
- EARLIEST = 1; // Start at the oldest message
- TIMESTAMP = 2; // Start after a specified timestamp, exclusive
- }
- StartPosition startPosition = 4; // Where to begin consuming from
- int64 timestampNs = 5; // timestamp in nano seconds
- string subscriber_id = 6; // uniquely identify a subscriber to track consumption
- }
- InitMessage init = 1;
- message AckMessage {
- int64 message_id = 1;
- }
- AckMessage ack = 2;
- bool is_close = 3;
- }
- message Message {
- int64 event_time_ns = 1 [jstype = JS_STRING];
- bytes key = 2; // Message key
- bytes value = 3; // Message payload
- map<string, bytes> headers = 4; // Message headers
- bool is_close = 5;
- }
- message BrokerMessage {
- Message data = 1;
- }
- message PublishRequest {
- message InitMessage {
- string namespace = 1; // only needed on the initial request
- string topic = 2; // only needed on the initial request
- int32 partition = 3;
- }
- InitMessage init = 1;
- Message data = 2;
- }
- message PublishResponse {
- message ConfigMessage {
- int32 partition_count = 1;
- }
- ConfigMessage config = 1;
- message RedirectMessage {
- string new_broker = 1;
- }
- RedirectMessage redirect = 2;
- bool is_closed = 3;
- }
- message DeleteTopicRequest {
- string namespace = 1;
- string topic = 2;
- }
- message DeleteTopicResponse {
- }
- message ConfigureTopicRequest {
- string namespace = 1;
- string topic = 2;
- TopicConfiguration configuration = 3;
- }
- message ConfigureTopicResponse {
- }
- message GetTopicConfigurationRequest {
- string namespace = 1;
- string topic = 2;
- }
- message GetTopicConfigurationResponse {
- TopicConfiguration configuration = 1;
- }
- message FindBrokerRequest {
- string namespace = 1;
- string topic = 2;
- int32 parition = 3;
- }
- message FindBrokerResponse {
- string broker = 1;
- }
- message TopicConfiguration {
- int32 partition_count = 1;
- string collection = 2;
- string replication = 3;
- bool is_transient = 4;
- enum Partitioning {
- NonNullKeyHash = 0; // If not null, hash by key value. If null, round robin
- KeyHash = 1; // hash by key value
- RoundRobin = 2; // round robin pick one partition
- }
- Partitioning partitoning = 5;
- }
|