Add message queue agent (#6463)
* scaffold message queue agent * adjust proto, add mq_agent * add agent client implementation * remove unused function * agent publish server implementation * adding agent
This commit is contained in:
95
weed/pb/mq_agent.proto
Normal file
95
weed/pb/mq_agent.proto
Normal file
@@ -0,0 +1,95 @@
|
||||
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 StartSubscribeSession (StartSubscribeSessionRequest) returns (StartSubscribeSessionResponse) {
|
||||
}
|
||||
rpc CloseSubscribeSession (CloseSubscribeSessionRequest) returns (CloseSubscribeSessionResponse) {
|
||||
}
|
||||
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;
|
||||
}
|
||||
//////////////////////////////////////////////////
|
||||
message StartSubscribeSessionRequest {
|
||||
string consumer_group = 1;
|
||||
string consumer_group_instance_id = 2;
|
||||
schema_pb.Topic topic = 4;
|
||||
repeated schema_pb.PartitionOffset partition_offsets = 5;
|
||||
string filter = 6;
|
||||
int32 max_subscribed_partitions = 8;
|
||||
int32 sliding_window_size = 9;
|
||||
}
|
||||
message StartSubscribeSessionResponse {
|
||||
string error = 1;
|
||||
int64 session_id = 2;
|
||||
}
|
||||
message CloseSubscribeSessionRequest {
|
||||
int64 session_id = 1;
|
||||
}
|
||||
message CloseSubscribeSessionResponse {
|
||||
string error = 1;
|
||||
}
|
||||
//////////////////////////////////////////////////
|
||||
message SubscribeRecordRequest {
|
||||
int64 session_id = 1; // session_id is required for the first record
|
||||
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;
|
||||
}
|
||||
//////////////////////////////////////////////////
|
||||
Reference in New Issue
Block a user