blob: 6457cbcd84448ed2b0fe0334989723e2f5c60be6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
syntax = "proto3";
package messaging_pb;
import "mq_schema.proto";
option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/mq_agent_pb";
option java_package = "seaweedfs.mq_agent";
option java_outer_classname = "MessageQueueAgentProto";
//////////////////////////////////////////////////
service SeaweedMessagingAgent {
// Publishing
rpc StartPublishSession (StartPublishSessionRequest) returns (StartPublishSessionResponse) {
}
rpc ClosePublishSession (ClosePublishSessionRequest) returns (ClosePublishSessionResponse) {
}
rpc PublishRecord (stream PublishRecordRequest) returns (stream PublishRecordResponse) {
}
// Subscribing
rpc SubscribeRecord (stream SubscribeRecordRequest) returns (stream SubscribeRecordResponse) {
}
}
//////////////////////////////////////////////////
message StartPublishSessionRequest {
schema_pb.Topic topic = 1;
int32 partition_count = 2;
schema_pb.RecordType record_type = 3;
string publisher_name = 4;
}
message StartPublishSessionResponse {
string error = 1;
int64 session_id = 2;
}
message ClosePublishSessionRequest {
int64 session_id = 1;
}
message ClosePublishSessionResponse {
string error = 1;
}
//////////////////////////////////////////////////
message PublishRecordRequest {
int64 session_id = 1; // session_id is required for the first record
bytes key = 2;
schema_pb.RecordValue value = 3;
}
message PublishRecordResponse {
int64 ack_sequence = 1;
string error = 2;
int64 base_offset = 3; // First offset assigned to this batch
int64 last_offset = 4; // Last offset assigned to this batch
}
//////////////////////////////////////////////////
message SubscribeRecordRequest {
message InitSubscribeRecordRequest {
string consumer_group = 1;
string consumer_group_instance_id = 2;
schema_pb.Topic topic = 4;
repeated schema_pb.PartitionOffset partition_offsets = 5;
schema_pb.OffsetType offset_type = 6;
int64 offset_ts_ns = 7;
string filter = 10;
int32 max_subscribed_partitions = 11;
int32 sliding_window_size = 12;
}
InitSubscribeRecordRequest init = 1;
int64 ack_sequence = 2;
bytes ack_key = 3;
}
message SubscribeRecordResponse {
bytes key = 2;
schema_pb.RecordValue value = 3;
int64 ts_ns = 4;
string error = 5;
bool is_end_of_stream = 6;
bool is_end_of_topic = 7;
int64 offset = 8; // Sequential offset within partition
}
//////////////////////////////////////////////////
|