<!-- Please answer these questions before submitting your issue. Thanks! For questions please use one of our forums: https://go-kratos.dev/docs/getting-started/faq --> #### What happened: When grpc enters idle mode, A last connection error occurs on the client and cannot be recovered. #### What you expected to happen: needs to continue to watch the latest instance of the service #### How to reproduce it (as minimally and precisely as possible): Bff grpc client adds WithIdleTimeout option <img width="381" alt="image" src="https://github.com/go-kratos/kratos/assets/23514869/13de2305-7ddf-418d-b406-d855a925100f"> after 5 seconds, Restart the server grpc service, pod ip changes,But the client is no longer updated <img width="577" alt="image-20240119215331303" src="https://github.com/go-kratos/kratos/assets/23514869/ac37a26b-f147-46ea-a1a2-a53d4885ddba"> #### Anything else we need to know?: Before entering idle <img width="1473" alt="image-20240119104636822" src="https://github.com/go-kratos/kratos/assets/23514869/5c8e4450-1301-418a-9852-389e8447742f"> After entering idle  When grpc enters idle mode, `watcher.Stop()` Called and `<-ctx.Done()` <img width="1119" alt="image-20240119214610867" src="https://github.com/go-kratos/kratos/assets/23514869/574cb6bc-77b0-4778-9f4c-70ce99c8fbe3"> #### Environment: - k8s - kratos: v2.7.2 - consul: v1.10.3 - Kratos version (use `kratos -v`): - go version go1.21.1 darwin/arm64 ## PR [fix: 当grpc结束闲置模式的时候,需要继续去获取服务的最新实例 #3162](https://github.com/go-kratos/kratos/pull/3162)