aboutsummaryrefslogtreecommitdiff
path: root/weed/pb/mq.proto
diff options
context:
space:
mode:
Diffstat (limited to 'weed/pb/mq.proto')
-rw-r--r--weed/pb/mq.proto148
1 files changed, 66 insertions, 82 deletions
diff --git a/weed/pb/mq.proto b/weed/pb/mq.proto
index cc4f962f2..5c309aaf1 100644
--- a/weed/pb/mq.proto
+++ b/weed/pb/mq.proto
@@ -4,7 +4,7 @@ package messaging_pb;
option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/mq_pb";
option java_package = "seaweedfs.mq";
-option java_outer_classname = "MessagQueueProto";
+option java_outer_classname = "MessageQueueProto";
//////////////////////////////////////////////////
@@ -13,34 +13,34 @@ service SeaweedMessaging {
// control plane
rpc FindBrokerLeader (FindBrokerLeaderRequest) returns (FindBrokerLeaderResponse) {
}
- rpc AssignSegmentBrokers (AssignSegmentBrokersRequest) returns (AssignSegmentBrokersResponse) {
- }
- rpc CheckSegmentStatus (CheckSegmentStatusRequest) returns (CheckSegmentStatusResponse) {
- }
- rpc CheckBrokerLoad (CheckBrokerLoadRequest) returns (CheckBrokerLoadResponse) {
- }
// control plane for balancer
- rpc ConnectToBalancer (stream ConnectToBalancerRequest) returns (stream ConnectToBalancerResponse) {
+ rpc PublisherToPubBalancer (stream PublisherToPubBalancerRequest) returns (stream PublisherToPubBalancerResponse) {
}
- rpc DoConfigureTopic (DoConfigureTopicRequest) returns (DoConfigureTopicResponse) {
+ rpc BalanceTopics (BalanceTopicsRequest) returns (BalanceTopicsResponse) {
}
+
// control plane for topic partitions
- rpc LookupTopicBrokers (LookupTopicBrokersRequest) returns (LookupTopicBrokersResponse) {
+ rpc ListTopics (ListTopicsRequest) returns (ListTopicsResponse) {
}
rpc ConfigureTopic (ConfigureTopicRequest) returns (ConfigureTopicResponse) {
}
- rpc ListTopics (ListTopicsRequest) returns (ListTopicsResponse) {
- }
- // a pub client will call this to get the topic partitions assignment
- rpc RequestTopicPartitions (RequestTopicPartitionsRequest) returns (RequestTopicPartitionsResponse) {
+ rpc LookupTopicBrokers (LookupTopicBrokersRequest) returns (LookupTopicBrokersResponse) {
}
+
+ // invoked by the balancer, running on each broker
rpc AssignTopicPartitions (AssignTopicPartitionsRequest) returns (AssignTopicPartitionsResponse) {
}
- rpc CheckTopicPartitionsStatus (CheckTopicPartitionsStatusRequest) returns (CheckTopicPartitionsStatusResponse) {
+ rpc ClosePublishers(ClosePublishersRequest) returns (ClosePublishersResponse) {
+ }
+ rpc CloseSubscribers(CloseSubscribersRequest) returns (CloseSubscribersResponse) {
+ }
+
+ // subscriber connects to broker balancer, which coordinates with the subscribers
+ rpc SubscriberToSubCoordinator (stream SubscriberToSubCoordinatorRequest) returns (stream SubscriberToSubCoordinatorResponse) {
}
- // data plane
+ // data plane for each topic partition
rpc Publish (stream PublishRequest) returns (stream PublishResponse) {
}
rpc Subscribe (SubscribeRequest) returns (stream SubscribeResponse) {
@@ -48,16 +48,6 @@ service SeaweedMessaging {
}
//////////////////////////////////////////////////
-message SegmentInfo {
- Segment segment = 1;
- int64 start_ts_ns = 2;
- repeated string brokers = 3;
- int64 stop_ts_ns = 4;
- repeated int32 previous_segments = 5;
- repeated int32 next_segments = 6;
-}
-
-//////////////////////////////////////////////////
message FindBrokerLeaderRequest {
string filer_group = 1;
@@ -75,38 +65,7 @@ message Partition {
int32 ring_size = 1;
int32 range_start = 2;
int32 range_stop = 3;
-}
-
-message Segment {
- string namespace = 1;
- string topic = 2;
- int32 id = 3;
- Partition partition = 4;
-}
-
-message AssignSegmentBrokersRequest {
- Segment segment = 1;
-}
-
-message AssignSegmentBrokersResponse {
- repeated string brokers = 1;
-}
-
-message CheckSegmentStatusRequest {
- Segment segment = 1;
-}
-
-message CheckSegmentStatusResponse {
- bool is_active = 1;
-}
-
-message CheckBrokerLoadRequest {
-}
-
-message CheckBrokerLoadResponse {
- int64 message_count = 1;
- int64 bytes_count = 2;
-
+ int64 unix_time_ns = 4;
}
//////////////////////////////////////////////////
@@ -122,7 +81,7 @@ message TopicPartitionStats {
}
-message ConnectToBalancerRequest {
+message PublisherToPubBalancerRequest {
message InitMessage {
string broker = 1;
}
@@ -131,8 +90,14 @@ message ConnectToBalancerRequest {
BrokerStats stats = 2;
}
}
-message ConnectToBalancerResponse {
+message PublisherToPubBalancerResponse {
}
+
+message BalanceTopicsRequest {
+}
+message BalanceTopicsResponse {
+}
+
//////////////////////////////////////////////////
message ConfigureTopicRequest {
Topic topic = 1;
@@ -141,12 +106,6 @@ message ConfigureTopicRequest {
message ConfigureTopicResponse {
repeated BrokerPartitionAssignment broker_partition_assignments = 2;
}
-message DoConfigureTopicRequest {
- Topic topic = 1;
- Partition partition = 2;
-}
-message DoConfigureTopicResponse {
-}
message ListTopicsRequest {
}
message ListTopicsResponse {
@@ -166,36 +125,49 @@ message BrokerPartitionAssignment {
repeated string follower_brokers = 3;
}
-message RequestTopicPartitionsRequest {
- Topic topic = 1;
- int32 partition_count = 2;
-}
-message RequestTopicPartitionsResponse {
- repeated BrokerPartitionAssignment broker_partition_assignments = 1;
-}
-
message AssignTopicPartitionsRequest {
Topic topic = 1;
repeated BrokerPartitionAssignment broker_partition_assignments = 2;
bool is_leader = 3;
+ bool is_draining = 4;
}
message AssignTopicPartitionsResponse {
}
-message CheckTopicPartitionsStatusRequest {
- string namespace = 1;
- string topic = 2;
- BrokerPartitionAssignment broker_partition_assignment = 3;
- bool should_cancel_if_not_match = 4;
+message SubscriberToSubCoordinatorRequest {
+ message InitMessage {
+ string consumer_group = 1;
+ string consumer_instance_id = 2;
+ Topic topic = 3;
+ }
+ message AckMessage {
+ Partition partition = 1;
+ int64 ts_ns = 2;
+ }
+ oneof message {
+ InitMessage init = 1;
+ AckMessage ack = 2;
+ }
}
-message CheckTopicPartitionsStatusResponse {
- repeated BrokerPartitionAssignment broker_partition_assignments = 1;
+message SubscriberToSubCoordinatorResponse {
+ message AssignedPartition {
+ Partition partition = 1;
+ int64 ts_ns = 2;
+ }
+ message Assignment {
+ int64 generation = 1;
+ repeated AssignedPartition assigned_partitions = 2;
+ }
+ oneof message {
+ Assignment assignment = 1;
+ }
}
//////////////////////////////////////////////////
message DataMessage {
bytes key = 1;
bytes value = 2;
+ int64 ts_ns = 3;
}
message PublishRequest {
message InitMessage {
@@ -212,7 +184,7 @@ message PublishRequest {
message PublishResponse {
int64 ack_sequence = 1;
string error = 2;
- string redirect_to_broker = 3;
+ bool should_close = 3;
}
message SubscribeRequest {
message InitMessage {
@@ -246,3 +218,15 @@ message SubscribeResponse {
DataMessage data = 2;
}
}
+message ClosePublishersRequest {
+ Topic topic = 1;
+ int64 unix_time_ns = 2;
+}
+message ClosePublishersResponse {
+}
+message CloseSubscribersRequest {
+ Topic topic = 1;
+ int64 unix_time_ns = 2;
+}
+message CloseSubscribersResponse {
+}