package main import ( "admin/cmd/test/args" "context" "flag" "log" "time" cserver "github.com/rpcxio/rpcx-redis/serverplugin" "github.com/smallnest/rpcx/server" ) var ( addr = flag.String("addr", "localhost:8972", "server address") redisAddr = flag.String("redisAddr", "localhost:6379", "redis address") basePath = flag.String("base", "/rpcx", "prefix path") ) type Arith struct { } func (srv *Arith) Mul(ctx context.Context, req *args.MulReq, rsp *args.MulRsp) error { rsp.C = req.A * req.B return nil } func main() { flag.Parse() s := server.NewServer() addRegistryPlugin(s) log.Printf("start server...") s.RegisterName("Arith", new(Arith), "") err := s.Serve("tcp", *addr) if err != nil { panic(err) } } func addRegistryPlugin(s *server.Server) { r := &cserver.RedisRegisterPlugin{ ServiceAddress: "tcp@" + *addr, RedisServers: []string{*redisAddr}, BasePath: *basePath, UpdateInterval: time.Minute, } err := r.Start() if err != nil { log.Fatal(err) } s.Plugins.Add(r) }