chrislu
1 year ago
9 changed files with 703 additions and 389 deletions
-
3weed/mq/balancer/balancer.go
-
20weed/mq/broker/broker_grpc_lookup.go
-
2weed/mq/broker/broker_server.go
-
8weed/mq/broker/broker_stats.go
-
9weed/pb/mq.proto
-
912weed/pb/mq_pb/mq.pb.go
-
36weed/pb/mq_pb/mq_grpc.pb.go
-
65weed/shell/command_mq_topic_create.go
-
37weed/shell/command_mq_topic_list.go
912
weed/pb/mq_pb/mq.pb.go
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,65 @@ |
|||||
|
package shell |
||||
|
|
||||
|
import ( |
||||
|
"context" |
||||
|
"flag" |
||||
|
"fmt" |
||||
|
"github.com/seaweedfs/seaweedfs/weed/pb" |
||||
|
"github.com/seaweedfs/seaweedfs/weed/pb/mq_pb" |
||||
|
"io" |
||||
|
) |
||||
|
|
||||
|
func init() { |
||||
|
Commands = append(Commands, &commandMqTopicCreate{}) |
||||
|
} |
||||
|
|
||||
|
type commandMqTopicCreate struct { |
||||
|
} |
||||
|
|
||||
|
func (c *commandMqTopicCreate) Name() string { |
||||
|
return "mq.topic.create" |
||||
|
} |
||||
|
|
||||
|
func (c *commandMqTopicCreate) Help() string { |
||||
|
return `create a topic with a given name |
||||
|
|
||||
|
Example: |
||||
|
mq.topic.create -namespace <namespace> -topic <topic_name> -partition_count <partition_count> |
||||
|
` |
||||
|
} |
||||
|
|
||||
|
func (c *commandMqTopicCreate) Do(args []string, commandEnv *CommandEnv, writer io.Writer) error { |
||||
|
|
||||
|
// parse parameters
|
||||
|
mqCommand := flag.NewFlagSet(c.Name(), flag.ContinueOnError) |
||||
|
namespace := mqCommand.String("namespace", "", "namespace name") |
||||
|
topicName := mqCommand.String("topic", "", "topic name") |
||||
|
partitionCount := mqCommand.Int("partitionCount", 6, "partition count") |
||||
|
if err := mqCommand.Parse(args); err != nil { |
||||
|
return err |
||||
|
} |
||||
|
|
||||
|
// find the broker balancer
|
||||
|
brokerBalancer, err := findBrokerBalancer(commandEnv) |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
fmt.Fprintf(writer, "current balancer: %s\n", brokerBalancer) |
||||
|
|
||||
|
// create topic
|
||||
|
return pb.WithBrokerGrpcClient(false, brokerBalancer, commandEnv.option.GrpcDialOption, func(client mq_pb.SeaweedMessagingClient) error { |
||||
|
resp, err := client.CreateTopic(context.Background(), &mq_pb.CreateTopicRequest{ |
||||
|
Topic: &mq_pb.Topic{ |
||||
|
Namespace: *namespace, |
||||
|
Name: *topicName, |
||||
|
}, |
||||
|
PartitionCount: int32(*partitionCount), |
||||
|
}) |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
fmt.Fprintf(writer, "response: %+v\n", resp) |
||||
|
return nil |
||||
|
}) |
||||
|
|
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue