57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
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)
|
|
}
|