@@ -158,17 +158,17 @@ func (g *Group) RefreshCidr() {
158158 }
159159}
160160
161- func (g * Group ) AddBackend (addr string , backend * backendWrapper ) {
161+ func (g * Group ) AddBackend (backendID string , backend * backendWrapper ) {
162162 g .Lock ()
163163 defer g .Unlock ()
164- g .backends [addr ] = backend
164+ g .backends [backendID ] = backend
165165 backend .group = g
166166}
167167
168- func (g * Group ) RemoveBackend (addr string ) {
168+ func (g * Group ) RemoveBackend (backendID string ) {
169169 g .Lock ()
170170 defer g .Unlock ()
171- delete (g .backends , addr )
171+ delete (g .backends , backendID )
172172}
173173
174174func (g * Group ) Empty () bool {
@@ -200,7 +200,7 @@ func (g *Group) Route(excluded []BackendInst) (policy.BackendCtx, error) {
200200 // Exclude the backends that are already tried.
201201 found := false
202202 for _ , e := range excluded {
203- if backend .Addr () == e .Addr () {
203+ if backend .ID () == e .ID () {
204204 found = true
205205 break
206206 }
@@ -273,7 +273,7 @@ func (g *Group) Balance(ctx context.Context) {
273273func (g * Group ) onCreateConn (backendInst BackendInst , conn RedirectableConn , succeed bool ) {
274274 g .Lock ()
275275 defer g .Unlock ()
276- backend := g .ensureBackend (backendInst .Addr ())
276+ backend := g .ensureBackend (backendInst .ID ())
277277 if succeed {
278278 connWrapper := & connWrapper {
279279 RedirectableConn : conn ,
@@ -319,23 +319,24 @@ func (g *Group) RedirectConnections() error {
319319 return nil
320320}
321321
322- func (g * Group ) ensureBackend (addr string ) * backendWrapper {
323- backend , ok := g .backends [addr ]
322+ func (g * Group ) ensureBackend (backendID string ) * backendWrapper {
323+ backend , ok := g .backends [backendID ]
324324 if ok {
325325 return backend
326326 }
327327 // The backend should always exist if it will be needed. Add a warning and add it back.
328- g .lg .Warn ("backend is not found in the router" , zap .String ("backend_addr " , addr ), zap .Stack ("stack" ))
329- ip , _ , _ := net .SplitHostPort (addr )
330- backend = newBackendWrapper (addr , observer.BackendHealth {
328+ g .lg .Warn ("backend is not found in the router" , zap .String ("backend_id " , backendID ), zap .Stack ("stack" ))
329+ ip , _ , _ := net .SplitHostPort (backendID )
330+ backend = newBackendWrapper (backendID , observer.BackendHealth {
331331 BackendInfo : observer.BackendInfo {
332+ Addr : backendID ,
332333 IP : ip ,
333334 StatusPort : 10080 , // impossible anyway
334335 },
335336 SupportRedirection : true ,
336337 Healthy : false ,
337338 })
338- g .backends [addr ] = backend
339+ g .backends [backendID ] = backend
339340 return backend
340341}
341342
0 commit comments