uniugm/admin/cmd/test/rpcxserver.go
2025-06-25 16:04:30 +08:00

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)
}