mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-26 23:10:44 +01:00
mq(kafka): scaffold Kafka gateway command and minimal TCP server with basic Start/Stop test; register command
This commit is contained in:
1 parent
58e0c1b330
commit
5fec62f648
5 files changed
+306
No files matched your search
@@ -35,6 +35,7 @@ var Commands = []*Command{
|
||||
cmdMount,
|
||||
cmdMqAgent,
|
||||
cmdMqBroker,
|
||||
cmdMqKafkaGateway,
|
||||
cmdDB,
|
||||
cmdS3,
|
||||
cmdScaffold,
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package command
|
||||
|
||||
import (
|
||||
"github.com/seaweedfs/seaweedfs/weed/glog"
|
||||
"github.com/seaweedfs/seaweedfs/weed/mq/kafka/gateway"
|
||||
)
|
||||
|
||||
var (
|
||||
mqKafkaGatewayOptions mqKafkaGatewayOpts
|
||||
)
|
||||
|
||||
type mqKafkaGatewayOpts struct {
|
||||
listen *string
|
||||
}
|
||||
|
||||
func init() {
|
||||
cmdMqKafkaGateway.Run = runMqKafkaGateway
|
||||
mqKafkaGatewayOptions.listen = cmdMqKafkaGateway.Flag.String("listen", ":9092", "Kafka gateway listen address")
|
||||
}
|
||||
|
||||
var cmdMqKafkaGateway = &Command{
|
||||
UsageLine: "mq.kafka.gateway [-listen=:9092]",
|
||||
Short: "start a Kafka wire-protocol gateway for SeaweedMQ",
|
||||
Long: `Start a Kafka wire-protocol gateway translating Kafka client requests to SeaweedMQ.
|
||||
|
||||
This is experimental and currently supports a minimal subset for development.
|
||||
`,
|
||||
}
|
||||
|
||||
func runMqKafkaGateway(cmd *Command, args []string) bool {
|
||||
srv := gateway.NewServer(gateway.Options{
|
||||
Listen: *mqKafkaGatewayOptions.listen,
|
||||
})
|
||||
|
||||
glog.V(0).Infof("Starting MQ Kafka Gateway on %s", *mqKafkaGatewayOptions.listen)
|
||||
if err := srv.Start(); err != nil {
|
||||
glog.Fatalf("mq kafka gateway start: %v", err)
|
||||
return false
|
||||
}
|
||||
// Serve blocks until closed
|
||||
if err := srv.Wait(); err != nil {
|
||||
glog.Errorf("mq kafka gateway wait: %v", err)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user