40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
|
|
gateway "github.com/rpcxio/rpcx-gateway"
|
|
"github.com/rpcxio/rpcx-gateway/gin"
|
|
redisRegistryClient "github.com/rpcxio/rpcx-redis/client"
|
|
"github.com/smallnest/rpcx/client"
|
|
)
|
|
|
|
var (
|
|
addr = flag.String("addr", ":8970", "http server address")
|
|
redisAddr = flag.String("redisAddr", "localhost:6379", "redis address")
|
|
basePath = flag.String("basepath", "/rpcx", "basepath for zookeeper, etcd and consul")
|
|
failmode = flag.Int("failmode", int(client.Failover), "failMode, Failover in default")
|
|
selectMode = flag.Int("selectmode", int(client.RoundRobin), "selectMode, RoundRobin in default")
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
d, err := createServiceDiscovery()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.Printf("start gateway ...")
|
|
|
|
httpServer := gin.New(*addr)
|
|
gw := gateway.NewGateway("/", httpServer, d, client.FailMode(*failmode), client.SelectMode(*selectMode), client.DefaultOption)
|
|
|
|
gw.Serve()
|
|
}
|
|
|
|
func createServiceDiscovery() (client.ServiceDiscovery, error) {
|
|
return redisRegistryClient.NewRedisDiscoveryTemplate(*basePath, []string{*redisAddr}, nil)
|
|
}
|