@@ -27,67 +27,6 @@ import (
2727 "google.golang.org/grpc/resolver"
2828)
2929
30- // The parent ClientConn should re-resolve when grpclb loses connection to the
31- // remote balancer. When the ClientConn inside grpclb gets a TransientFailure,
32- // it calls lbManualResolver.ResolveNow(), which calls parent ClientConn's
33- // ResolveNow, and eventually results in re-resolve happening in parent
34- // ClientConn's resolver (DNS for example).
35- //
36- // parent
37- // ClientConn
38- // +-----------------------------------------------------------------+
39- // | parent +---------------------------------+ |
40- // | DNS ClientConn | grpclb | |
41- // | resolver balancerWrapper | | |
42- // | + + | grpclb grpclb | |
43- // | | | | ManualResolver ClientConn | |
44- // | | | | + + | |
45- // | | | | | | Transient | |
46- // | | | | | | Failure | |
47- // | | | | | <--------- | | |
48- // | | | <--------------- | ResolveNow | | |
49- // | | <--------- | ResolveNow | | | | |
50- // | | ResolveNow | | | | | |
51- // | | | | | | | |
52- // | + + | + + | |
53- // | +---------------------------------+ |
54- // +-----------------------------------------------------------------+
55-
56- // lbManualResolver is used by the ClientConn inside grpclb. It's a manual
57- // resolver with a special ResolveNow() function.
58- //
59- // When ResolveNow() is called, it calls ResolveNow() on the parent ClientConn,
60- // so when grpclb client lose contact with remote balancers, the parent
61- // ClientConn's resolver will re-resolve.
62- type lbManualResolver struct {
63- scheme string
64- ccr resolver.ClientConn
65-
66- ccb balancer.ClientConn
67- }
68-
69- func (r * lbManualResolver ) Build (_ resolver.Target , cc resolver.ClientConn , _ resolver.BuildOptions ) (resolver.Resolver , error ) {
70- r .ccr = cc
71- return r , nil
72- }
73-
74- func (r * lbManualResolver ) Scheme () string {
75- return r .scheme
76- }
77-
78- // ResolveNow calls resolveNow on the parent ClientConn.
79- func (r * lbManualResolver ) ResolveNow (o resolver.ResolveNowOptions ) {
80- r .ccb .ResolveNow (o )
81- }
82-
83- // Close is a noop for Resolver.
84- func (* lbManualResolver ) Close () {}
85-
86- // UpdateState calls cc.UpdateState.
87- func (r * lbManualResolver ) UpdateState (s resolver.State ) {
88- r .ccr .UpdateState (s )
89- }
90-
9130const subConnCacheTime = time .Second * 10
9231
9332// lbCacheClientConn is a wrapper balancer.ClientConn with a SubConn cache.
0 commit comments