12345678910111213141516171819202122232425262728293031323334 |
- package internal
- import (
- "fmt"
- "strings"
- "github.com/tal-tech/go-zero/rpcx/internal/balancer/p2c"
- "github.com/tal-tech/go-zero/rpcx/internal/resolver"
- "google.golang.org/grpc"
- )
- func init() {
- resolver.RegisterResolver()
- }
- type DiscovClient struct {
- conn *grpc.ClientConn
- }
- func NewDiscovClient(endpoints []string, key string, opts ...ClientOption) (*DiscovClient, error) {
- opts = append(opts, WithDialOption(grpc.WithBalancerName(p2c.Name)))
- target := fmt.Sprintf("%s://%s/%s", resolver.DiscovScheme,
- strings.Join(endpoints, resolver.EndpointSep), key)
- conn, err := dial(target, opts...)
- if err != nil {
- return nil, err
- }
- return &DiscovClient{conn: conn}, nil
- }
- func (c *DiscovClient) Conn() *grpc.ClientConn {
- return c.conn
- }
|