-
Notifications
You must be signed in to change notification settings - Fork 933
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix:#1143 Feature/reduce etcd registry conn; wait group modify #1297
fix:#1143 Feature/reduce etcd registry conn; wait group modify #1297
Conversation
Codecov Report
@@ Coverage Diff @@
## 3.0 #1297 +/- ##
==========================================
- Coverage 56.09% 55.68% -0.42%
==========================================
Files 273 273
Lines 12779 14998 +2219
==========================================
+ Hits 7169 8351 +1182
- Misses 4705 5738 +1033
- Partials 905 909 +4
Continue to review full report at Codecov.
|
case <-r.Client().GetCtx().Done(): | ||
r.RestartCallBack() | ||
// re-register all services | ||
time.Sleep(10 * time.Microsecond) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
为什么这里要Sleep?
我看RestartCallBack的逻辑是重新注册,下面的逻辑是重建client,并且有重试逻辑。使用RestartCallBack的目的是什么呢?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
代码实现参照zk对于连接过多的优化,做了类似的实现。
<-GetCtx().Done()意味着已经断连,需要调用RestartCallBack重新注册
可否简单叙述一下这么优化的思路在哪里? @WilliamLeaves |
err error | ||
failTimes int | ||
) | ||
|
||
defer r.WaitGroup().Done() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r.WaitGroup()的done,wait和add使用散落在各处,remoting作为基础组件,是否可能有同学直接调用 HandleClientRestart ,然后函数结束出现 negative 的问题?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
有可能,用once限制一下HandleClientRestart的调用次数是否可以呢;该方法在init包被引入的时候调用,只调用一次。
@WilliamLeaves pls fix the conflict file remoting/etcdv3/facade.go |
already fixed |
…m.cnpmjs.org/WilliamLeaves/dubbo-go into feature/reduce-etcd-registry-conn
pls Conflicting files go.sum |
Pls fix your conflict and push me to merge. |
@@ -312,3 +313,8 @@ func (r *zkRegistry) getCloseListener(conf *common.URL) (*RegistryConfigurationL | |||
|
|||
return zkListener, nil | |||
} | |||
|
|||
func (r *zkRegistry) handleClientRestart() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AsyncHandleClientRestart
@@ -174,3 +174,8 @@ func (r *etcdV3Registry) DoSubscribe(svc *common.URL) (registry.Listener, error) | |||
func (r *etcdV3Registry) DoUnsubscribe(conf *common.URL) (registry.Listener, error) { | |||
return nil, perrors.New("DoUnsubscribe is not support in etcdV3Registry") | |||
} | |||
|
|||
func (r *etcdV3Registry) handleClientRestart() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AsyncHandleClientRestart
* fix: change register event chan to unbundent chan (#1330) * fix: #1323 delete zk registry when set defualt consumer/provider config (#1324) * Ftr: Generic invocation supports Generalizer (#1315) * generic filter * sync * feat: get java name from POJO * todo: unittests for generic filter * unittests for generic filter * map generalizer * adjust import block * generic service filter is ready for generalizer * add unittests for GenericServiceFilter * ReferenceConfig supports new format of generic key * go fmt * fix license * fix license * fix bugs encountering in integrated tests * go fmt * fix serialization bugs * ftr: generic invocation supports protobuf-json * go fmt * go fmt * disable protobuf-json * go fmt * update comments * fix logging level (#1341) * Ftr: add lumberjack log config (#1335) * add lumberjack & union test * fix go fmt error,modify go.sum file * Ftr: add json generalizer (#1343) * Ftr: add json generalizer Fix: go fmt * Fix: hessian pojo * fix: restart ci * Fix: imports format * style(*): format imports with dubbogo/tools/imports-formatter (#1346) * fix Fixed the problem that the timeout period of the original method level does not take effect (#1336) * fix Fixed the problem that the timeout period of the original method level does not take effect * fix Fixed the problem that the timeout period of the original method level does not take effect Co-authored-by: 董振兴 <dongzhenxing@xiaomi.com> * fix:#1143 Feature/reduce etcd registry conn; wait group modify (#1297) * modify map use in nacos service_discovery * fix map double write bug * modify etcd registry restart mechanism * add sync.once for HandleClientRestart * modify the logic when add() or done() of wait group in zk,etcd and k8s registry * modify the logic when add() or done() of wait group in zk,etcd and k8s registry * add handleClientRestart func * add handleClientRestart func * go fmt * fix: update linter Co-authored-by: yexiaobo <yexiaobo@luojilab.com> Co-authored-by: LaurenceLiZhixin <382673304@qq.com> * ftr: triple multi params support (#1344) * ftr: triple multi params support * fix: import * fix: fix ci and gomod * fix: fmt * fix: add develop back to branch * fix: remove unused getty import * fix: mock zk registry (#1351) * 优化Nacos下的ServiceName的命名风格 (#1352) Co-authored-by: Changeden <chenzhiduan@unizone.tech> * remove zk test (#1357) * Use class name as the default reference name (#1339) * build(deps): bump actions/cache from v2.1.4 to v2.1.5 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.4 to v2.1.5. - [Release notes](https://github.com/actions/cache/releases) - [Commits](actions/cache@v2.1.4...1a9e213) Signed-off-by: dependabot[bot] <support@github.com> * improve etcd version and change create to put (#1203) * Remove RPC Service * use type assertion before reflect * modify comment * modify comment of BaseMetadataService * add the type alias of interface{} * modify RPCService Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xin.Zh <dragoncharlie@foxmail.com> Co-authored-by: AlexStocks <alexstocks@foxmail.com> Co-authored-by: randy <ztelur@gmail.com> * Feat/upgrade getty (#1345) * feat(getty): upgrade getty version to 1.4.4 * feat(getty): delete outdated getty params * delete time.Sleep in unit test * upgrade getty version to 1.4.5 * style(getty): format package getty imports Co-authored-by: dongjianhui03 <dongjianhui03@meituan.com> * support multi pb (#1361) * 修复当getty的tcp read/write timeout小于1s时panic的问题 * TCP Read/Write最小值提取为全局变量,优化parseTimeDurationByRange逻辑 * logo (#1382) * Change the key of a mock EchoFilter (#1381) * build(deps): bump actions/cache from v2.1.4 to v2.1.5 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.4 to v2.1.5. - [Release notes](https://github.com/actions/cache/releases) - [Commits](actions/cache@v2.1.4...1a9e213) Signed-off-by: dependabot[bot] <support@github.com> * improve etcd version and change create to put (#1203) * change the mock filter key Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xin.Zh <dragoncharlie@foxmail.com> Co-authored-by: AlexStocks <alexstocks@foxmail.com> Co-authored-by: randy <ztelur@gmail.com> * Change the key of a mock EchoFilter (#1381) * build(deps): bump actions/cache from v2.1.4 to v2.1.5 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.4 to v2.1.5. - [Release notes](https://github.com/actions/cache/releases) - [Commits](actions/cache@v2.1.4...1a9e213) Signed-off-by: dependabot[bot] <support@github.com> * improve etcd version and change create to put (#1203) * change the mock filter key Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xin.Zh <dragoncharlie@foxmail.com> Co-authored-by: AlexStocks <alexstocks@foxmail.com> Co-authored-by: randy <ztelur@gmail.com> * fix: nacos service disc error log bug (#1390) * 优化代码逻辑 * fix:registry timeout not pars (#1392) * fix:registry timeout not pars * up:fmt * up:统一超时时间key * fix:修改测试顺序问题 * up:fmt * change dependabot target branch * build(deps): bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.0 (#1400) * build(deps): bump actions/cache from v2.1.4 to v2.1.5 Bumps [actions/cache](https://github.com/actions/cache) from v2.1.4 to v2.1.5. - [Release notes](https://github.com/actions/cache/releases) - [Commits](actions/cache@v2.1.4...1a9e213) Signed-off-by: dependabot[bot] <support@github.com> * improve etcd version and change create to put (#1203) * build(deps): bump github.com/dubbogo/gost from 1.11.14 to 1.11.16 (#1387) Bumps [github.com/dubbogo/gost](https://github.com/dubbogo/gost) from 1.11.14 to 1.11.16. - [Release notes](https://github.com/dubbogo/gost/releases) - [Commits](dubbogo/gost@v1.11.14...v1.11.16) --- updated-dependencies: - dependency-name: github.com/dubbogo/gost dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump google.golang.org/protobuf from 1.26.0 to 1.27.1 (#1386) Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.26.0 to 1.27.1. - [Release notes](https://github.com/protocolbuffers/protobuf-go/releases) - [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash) - [Commits](protocolbuffers/protobuf-go@v1.26.0...v1.27.1) --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump go.etcd.io/etcd/client/v3 from 3.5.0-alpha.0 to 3.5.0 (#1383) Bumps [go.etcd.io/etcd/client/v3](https://github.com/etcd-io/etcd) from 3.5.0-alpha.0 to 3.5.0. - [Release notes](https://github.com/etcd-io/etcd/releases) - [Changelog](https://github.com/etcd-io/etcd/blob/main/CHANGELOG-3.5.md) - [Commits](etcd-io/etcd@v3.5.0-alpha.0...v3.5.0) --- updated-dependencies: - dependency-name: go.etcd.io/etcd/client/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.0 Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.4.9 to 1.5.0. - [Release notes](https://github.com/fsnotify/fsnotify/releases) - [Changelog](https://github.com/fsnotify/fsnotify/blob/master/CHANGELOG.md) - [Commits](fsnotify/fsnotify@v1.4.9...v1.5.0) --- updated-dependencies: - dependency-name: github.com/fsnotify/fsnotify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xin.Zh <dragoncharlie@foxmail.com> Co-authored-by: AlexStocks <alexstocks@foxmail.com> Co-authored-by: randy <ztelur@gmail.com> * build(deps): bump github.com/emicklei/go-restful/v3 from 3.4.0 to 3.5.2 (#1403) Bumps [github.com/emicklei/go-restful/v3](https://github.com/emicklei/go-restful) from 3.4.0 to 3.5.2. - [Release notes](https://github.com/emicklei/go-restful/releases) - [Changelog](https://github.com/emicklei/go-restful/blob/v3/CHANGES.md) - [Commits](emicklei/go-restful@v3.4.0...v3.5.2) --- updated-dependencies: - dependency-name: github.com/emicklei/go-restful/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 更新TCP读写超时最小值命名;不再使用范围比较; * del protoc-gen-dubbo3 & protoc-gen-dubbo (#1313) Co-authored-by: Mulavar <978007503@qq.com> Co-authored-by: XavierNiu <a@nxw.name> Co-authored-by: 氕氘氚 <cjp_ca@163.com> Co-authored-by: EnableAsync <43645467+EnableAsync@users.noreply.github.com> Co-authored-by: XX <45752021+Threadalive@users.noreply.github.com> Co-authored-by: 董振兴 <dongzhenxing@xiaomi.com> Co-authored-by: WilliamLeaves <williamtheleaves@gmail.com> Co-authored-by: yexiaobo <yexiaobo@luojilab.com> Co-authored-by: ChangedenChan <changeden520@gmail.com> Co-authored-by: Changeden <chenzhiduan@unizone.tech> Co-authored-by: YuDong Tang <583125614@qq.com> Co-authored-by: alchemy-lee <2769566951@qq.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xin.Zh <dragoncharlie@foxmail.com> Co-authored-by: AlexStocks <alexstocks@foxmail.com> Co-authored-by: randy <ztelur@gmail.com> Co-authored-by: dongjianhui03 <dongjianhui03@meituan.com> Co-authored-by: gaoxinge <xg.gao@tianrang-inc.com> Co-authored-by: wangxw666 <2484713618@qq.com> Co-authored-by: zhaoyunxing <2385585770@qq.com> Co-authored-by: Joe Zou <joezou@apache.org>
What this PR does:
reduce etcd registry conn when register to etcd
and modify the logic of wait group when add() and done() of registries
Which issue(s) this PR fixes:
Fixes #1143
Special notes for your reviewer:
Does this PR introduce a user-facing change?: NO