Skip to content

Commit e2e905c

Browse files
mergify[bot]cybwan
andauthored
[cherry-pick] fix: eureka register cache(release/1.5). (#994) (#996)
fix: eureka register cache(release/1.5). (#994) fix eureka register cache. (cherry picked from commit da98ab6) Signed-off-by: Cybwan <[email protected]> Signed-off-by: Lin Yang <[email protected]> Co-authored-by: Cybwan <[email protected]>
1 parent cf262b1 commit e2e905c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

pkg/connector/provider/eureka.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,22 @@ type heartbeat struct {
2323
func (h *heartbeat) run() {
2424
slidingTimer := time.NewTimer(h.dc.connectController.GetEurekaHeartBeatPeriod())
2525
defer slidingTimer.Stop()
26+
fails := 0
2627
for {
2728
select {
2829
case <-h.stop:
2930
return
3031
case <-slidingTimer.C:
3132
if err := h.dc.eurekaClient().HeartBeatInstance(h.instance); err != nil {
3233
log.Error().Err(err).Msgf("%s/%s heart beat error", h.instance.App, h.instance.InstanceId)
34+
fails++
35+
} else {
36+
fails = 0
37+
}
38+
if fails >= 5 {
39+
if err := h.dc.eurekaClient().RegisterInstance(h.instance); err == nil {
40+
fails = 0
41+
}
3342
}
3443
slidingTimer.Reset(h.dc.connectController.GetEurekaHeartBeatPeriod())
3544
}
@@ -375,9 +384,7 @@ func (dc *EurekaDiscoveryClient) Deregister(dereg *connector.CatalogDeregistrati
375384

376385
func (dc *EurekaDiscoveryClient) Register(reg *connector.CatalogRegistration) error {
377386
ins := reg.ToEureka()
378-
cacheIns := *ins
379-
cacheIns.UniqueID = nil
380-
return dc.connectController.CacheRegisterInstance(ins.InstanceId, cacheIns, func() error {
387+
return dc.connectController.CacheRegisterInstance(ins.InstanceId, *reg, func() error {
381388
err := dc.eurekaClient().RegisterInstance(ins)
382389
if err == nil {
383390
if dc.connectController.GetEurekaHeartBeatInstance() {

0 commit comments

Comments
 (0)