module
0.0.0-20231109072131-2617f141f370
Repository: https://github.com/liujunren93/share.git
Documentation: pkg.go.dev
# README
share
基于grpc的一个微服务框架
- 服务发现
- 服务注册
- grpc 服务封装
- grpc 客户端封装
package main
import (
"context"
"flag"
"fmt"
"github.com/liujunren93/share/core/registry"
"github.com/liujunren93/share/core/registry/etcd"
"github.com/liujunren93/share/example/proto"
"github.com/liujunren93/share/plugins/opentrace"
"github.com/liujunren93/share/plugins/validator"
"github.com/liujunren93/share/server"
"github.com/liujunren93/share_utils/wrapper/openTrace"
"github.com/opentracing/opentracing-go"
"google.golang.org/grpc"
)
type hello struct {
}
func (h hello) Say(ctx context.Context, req *proto.Req) (*proto.Res, error) {
var res proto.Res
res.Msg = req.Name + ":hello world1"
return &res, nil
}
var weight *int
func init() {
weight = flag.Int("w", 10, "")
flag.Parse()
}
func main() {
newJaeger, _, _ := openTrace.NewJaeger("app", "127.0.0.1:6831")
opentracing.SetGlobalTracer(newJaeger)
grpcServer := server.NewGrpcServer(
server.WithName("app"),
//server.WithAddress("127.0.0.1:2222"),
server.WithHdlrWrappers(validator.NewHandlerWrapper(),
opentrace.ServerGrpcWrap(newJaeger),
),
)
r, err := etcd.NewRegistry(registry.WithAddrs("127.0.0.1:2379"))
if err != nil {
panic(err)
}
fmt.Println(weight)
grpcServer.Registry(r, registry.WithWeight(*weight))
proto.RegisterHelloWorldServer(grpcServer.Server().(*grpc.Server), new(hello))
grpcServer.Run()
}
client:
package main
import (
"context"
"fmt"
"github.com/liujunren93/share/client"
"github.com/liujunren93/share/core/registry"
"github.com/liujunren93/share/core/registry/etcd"
"github.com/liujunren93/share/example/proto"
"github.com/liujunren93/share_utils/wrapper/openTrace"
"github.com/opentracing/opentracing-go"
"google.golang.org/grpc/balancer/roundrobin"
)
func main() {
newJaeger, _, _ := openTrace.NewJaeger("client", "127.0.0.1:6831")
opentracing.SetGlobalTracer(newJaeger)
r,_ := etcd.NewRegistry(registry.WithAddrs("127.0.0.1:2379"))
newClient := client.NewClient(client.WithRegistry(r),client.WithBalancer(roundrobin.Name))
conn, _ := newClient.Client("app")
for {
fmt.Scanln()
mathClient := proto.NewHelloWorldClient(conn)
add, err := mathClient.Say(context.TODO(), &proto.Req{
Name: "adsa",
})
fmt.Println(add, err)
}
}
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author