chrislu
1 year ago
9 changed files with 703 additions and 389 deletions
-
1weed/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