You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by GitBox <gi...@apache.org> on 2022/04/11 13:17:40 UTC

[GitHub] [dubbo-go] sanxun0325 opened a new pull request, #1828: xds ring hash

sanxun0325 opened a new pull request, #1828:
URL: https://github.com/apache/dubbo-go/pull/1828

   <!--  Thanks for sending a pull request!
   Read https://github.com/apache/dubbo-go/blob/master/CONTRIBUTING.md before commit pull request.
   -->
   
   **What this PR does**: 
   
   **Which issue(s) this PR fixes**: 
   Fixes #
   
   **You should pay attention to items below to ensure your pr passes our ci test**
   We do not merge pr with ci tests failed
   
   - [x] All ut passed (run 'go test ./...' in project root)
   - [x] After go-fmt ed , run 'go fmt project' using goland.
   - [x] Golangci-lint passed, run 'sudo golangci-lint run' in project root.
   - [x] After import formatted, (using [imports-formatter](https://github.com/dubbogo/tools#5-how-to-get-imports-formatter) to run 'imports-formatter .' in project root, to format your import blocks, mentioned in [CONTRIBUTING.md](https://github.com/apache/dubbo-go/blob/master/CONTRIBUTING.md) above) 
   - [x] Your new-created file needs to have [apache license](https://raw.githubusercontent.com/dubbogo/resources/master/tools/license/license.txt) at the top, like other existed file does.
   - [x] All integration test passed. You can run integration test locally (with docker env). Clone our [dubbo-go-samples](https://github.com/apache/dubbo-go-samples) project and replace the go.mod to your dubbo-go, and run 'sudo sh start_integration_test.sh' at root of samples project root. (M1 Slice is not Support)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] codecov-commenter commented on pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
codecov-commenter commented on PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#issuecomment-1095065169

   # [Codecov](https://codecov.io/gh/apache/dubbo-go/pull/1828?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
   > Merging [#1828](https://codecov.io/gh/apache/dubbo-go/pull/1828?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (f404e56) into [3.0](https://codecov.io/gh/apache/dubbo-go/commit/7bc593b2383cdb11372d1aae496c0b881532405c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (7bc593b) will **increase** coverage by `0.04%`.
   > The diff coverage is `62.50%`.
   
   > :exclamation: Current head f404e56 differs from pull request most recent head 99f80a0. Consider uploading reports for the commit 99f80a0 to get more accurate results
   
   ```diff
   @@            Coverage Diff             @@
   ##              3.0    #1828      +/-   ##
   ==========================================
   + Coverage   46.85%   46.90%   +0.04%     
   ==========================================
     Files         298      300       +2     
     Lines       17163    17275     +112     
   ==========================================
   + Hits         8042     8103      +61     
   - Misses       8275     8315      +40     
   - Partials      846      857      +11     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/dubbo-go/pull/1828?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
   |---|---|---|
   | [remoting/xds/client.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-cmVtb3RpbmcveGRzL2NsaWVudC5nbw==) | `53.78% <0.00%> (-3.11%)` | :arrow_down: |
   | [cluster/loadbalance/xds/ringhash/ringhash.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-Y2x1c3Rlci9sb2FkYmFsYW5jZS94ZHMvcmluZ2hhc2gvcmluZ2hhc2guZ28=) | `54.83% <54.83%> (ø)` | |
   | [cluster/loadbalance/xds/ringhash/ring.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-Y2x1c3Rlci9sb2FkYmFsYW5jZS94ZHMvcmluZ2hhc2gvcmluZy5nbw==) | `77.61% <77.61%> (ø)` | |
   | [remoting/xds/ewatcher/ewatcher.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-cmVtb3RpbmcveGRzL2V3YXRjaGVyL2V3YXRjaGVyLmdv) | `100.00% <100.00%> (ø)` | |
   | [filter/metrics/filter.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZmlsdGVyL21ldHJpY3MvZmlsdGVyLmdv) | `85.00% <0.00%> (-15.00%)` | :arrow_down: |
   | [registry/nacos/listener.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-cmVnaXN0cnkvbmFjb3MvbGlzdGVuZXIuZ28=) | `78.26% <0.00%> (-2.61%)` | :arrow_down: |
   | [metrics/prometheus/reporter.go](https://codecov.io/gh/apache/dubbo-go/pull/1828/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-bWV0cmljcy9wcm9tZXRoZXVzL3JlcG9ydGVyLmdv) | `26.85% <0.00%> (-1.72%)` | :arrow_down: |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/dubbo-go/pull/1828?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/dubbo-go/pull/1828?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [7bc593b...99f80a0](https://codecov.io/gh/apache/dubbo-go/pull/1828?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] AlexStocks merged pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
AlexStocks merged PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] LaurenceLiZhixin commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
LaurenceLiZhixin commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r851113358


##########
cluster/loadbalance/xds/ringhash/ringhash.go:
##########
@@ -0,0 +1,87 @@
+/*

Review Comment:
   这个文件能不能放到 cluster/loadbalance/下面



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] LaurenceLiZhixin commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
LaurenceLiZhixin commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r851704977


##########
cluster/loadbalance/xds/ringhash/ringhash.go:
##########
@@ -0,0 +1,87 @@
+/*

Review Comment:
   建议还是放到cluster/loadbalance/ringhash 下面吧。
   负载均衡应该跟xds是解耦合的。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] AlexStocks commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
AlexStocks commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r847977767


##########
cluster/loadbalance/xds/ringhash/ring.go:
##########
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ringhash
+
+import (
+	"fmt"
+	"math"
+	"math/bits"
+	"sort"
+	"strconv"
+)
+
+import (
+	"github.com/cespare/xxhash/v2"
+)
+
+import (
+	"dubbo.apache.org/dubbo-go/v3/protocol"
+	"dubbo.apache.org/dubbo-go/v3/xds/client/resource"
+	"dubbo.apache.org/dubbo-go/v3/xds/utils/grpcrand"
+)
+
+type invokerWithWeight struct {
+	invoker protocol.Invoker
+	weight  float64
+}
+
+type ringEntry struct {
+	idx     int
+	hash    uint64
+	invoker protocol.Invoker
+}
+
+func (lb *ringhashLoadBalance) generateRing(invokers []invokerWrapper, minRingSize, maxRingSize uint64) ([]*ringEntry, error) {
+	normalizedWeights, minWeight, err := normalizeWeights(invokers)
+	if err != nil {
+		return nil, err
+	}
+	// Normalized weights for {3,3,4} is {0.3,0.3,0.4}.
+
+	// Scale up the size of the ring such that the least-weighted host gets a
+	// whole number of hashes on the ring.
+	//
+	// Note that size is limited by the input max/min.
+	scale := math.Min(math.Ceil(minWeight*float64(minRingSize))/minWeight, float64(maxRingSize))
+	ringSize := math.Ceil(scale)
+	items := make([]*ringEntry, 0, int(ringSize))
+
+	// For each entry, scale*weight nodes are generated in the ring.
+	//
+	// Not all of these are whole numbers. E.g. for weights {a:3,b:3,c:4}, if
+	// ring size is 7, scale is 6.66. The numbers of nodes will be
+	// {a,a,b,b,c,c,c}.
+	//
+	// A hash is generated for each item, and later the results will be sorted
+	// based on the hash.
+	var (
+		idx       int
+		targetIdx float64
+	)
+	for _, inw := range normalizedWeights {
+		targetIdx += scale * inw.weight
+		for float64(idx) < targetIdx {
+			h := xxhash.Sum64String(inw.invoker.GetURL().String() + strconv.Itoa(len(items)))
+			items = append(items, &ringEntry{idx: idx, hash: h, invoker: inw.invoker})
+			idx++
+		}
+	}
+
+	// Sort items based on hash, to prepare for binary search.
+	sort.Slice(items, func(i, j int) bool { return items[i].hash < items[j].hash })
+	for i, ii := range items {
+		ii.idx = i
+	}
+	return items, nil
+}
+
+// normalizeWeights divides all the weights by the sum, so that the total weight
+// is 1.
+func normalizeWeights(invokers []invokerWrapper) ([]invokerWithWeight, float64, error) {
+	var weightSum int
+	for _, v := range invokers {
+		weightSum += v.weight
+	}
+	if weightSum == 0 {
+		return nil, 0, fmt.Errorf("total weight of all endpoints is 0")
+	}
+	weightSumF := float64(weightSum)
+	ret := make([]invokerWithWeight, 0, len(invokers))
+	min := math.MaxFloat64
+	for _, invoker := range invokers {
+		nw := float64(invoker.weight) / weightSumF
+		ret = append(ret, invokerWithWeight{invoker: invoker.invoker, weight: nw})
+		if nw < min {
+			min = nw
+		}
+	}
+	return ret, min, nil
+}
+
+func (lb *ringhashLoadBalance) pick(h uint64, items []*ringEntry) *ringEntry {
+	i := sort.Search(len(items), func(i int) bool { return items[i].hash >= h })
+	if i == len(items) {
+		// If not found, and h is greater than the largest hash, return the
+		// first item.
+		i = 0
+	}
+	return items[i]
+}
+
+func (lb *ringhashLoadBalance) generateHash(invocation protocol.Invocation, hashPolicies []*resource.HashPolicy) uint64 {
+	var hash uint64

Review Comment:
   放在一个 var () 里面



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] sanxun0325 commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
sanxun0325 commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r848290324


##########
cluster/loadbalance/xds/ringhash/ring.go:
##########
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ringhash
+
+import (
+	"fmt"
+	"math"
+	"math/bits"
+	"sort"
+	"strconv"
+)
+
+import (
+	"github.com/cespare/xxhash/v2"
+)
+
+import (
+	"dubbo.apache.org/dubbo-go/v3/protocol"
+	"dubbo.apache.org/dubbo-go/v3/xds/client/resource"
+	"dubbo.apache.org/dubbo-go/v3/xds/utils/grpcrand"
+)
+
+type invokerWithWeight struct {
+	invoker protocol.Invoker
+	weight  float64
+}
+
+type ringEntry struct {
+	idx     int
+	hash    uint64
+	invoker protocol.Invoker
+}
+
+func (lb *ringhashLoadBalance) generateRing(invokers []invokerWrapper, minRingSize, maxRingSize uint64) ([]*ringEntry, error) {
+	normalizedWeights, minWeight, err := normalizeWeights(invokers)
+	if err != nil {
+		return nil, err
+	}
+	// Normalized weights for {3,3,4} is {0.3,0.3,0.4}.
+
+	// Scale up the size of the ring such that the least-weighted host gets a
+	// whole number of hashes on the ring.
+	//
+	// Note that size is limited by the input max/min.
+	scale := math.Min(math.Ceil(minWeight*float64(minRingSize))/minWeight, float64(maxRingSize))
+	ringSize := math.Ceil(scale)
+	items := make([]*ringEntry, 0, int(ringSize))
+
+	// For each entry, scale*weight nodes are generated in the ring.
+	//
+	// Not all of these are whole numbers. E.g. for weights {a:3,b:3,c:4}, if
+	// ring size is 7, scale is 6.66. The numbers of nodes will be
+	// {a,a,b,b,c,c,c}.
+	//
+	// A hash is generated for each item, and later the results will be sorted
+	// based on the hash.
+	var (
+		idx       int
+		targetIdx float64
+	)
+	for _, inw := range normalizedWeights {
+		targetIdx += scale * inw.weight
+		for float64(idx) < targetIdx {
+			h := xxhash.Sum64String(inw.invoker.GetURL().String() + strconv.Itoa(len(items)))
+			items = append(items, &ringEntry{idx: idx, hash: h, invoker: inw.invoker})
+			idx++
+		}
+	}
+
+	// Sort items based on hash, to prepare for binary search.
+	sort.Slice(items, func(i, j int) bool { return items[i].hash < items[j].hash })
+	for i, ii := range items {
+		ii.idx = i
+	}
+	return items, nil
+}
+
+// normalizeWeights divides all the weights by the sum, so that the total weight
+// is 1.
+func normalizeWeights(invokers []invokerWrapper) ([]invokerWithWeight, float64, error) {
+	var weightSum int
+	for _, v := range invokers {
+		weightSum += v.weight
+	}
+	if weightSum == 0 {
+		return nil, 0, fmt.Errorf("total weight of all endpoints is 0")
+	}
+	weightSumF := float64(weightSum)
+	ret := make([]invokerWithWeight, 0, len(invokers))
+	min := math.MaxFloat64
+	for _, invoker := range invokers {
+		nw := float64(invoker.weight) / weightSumF
+		ret = append(ret, invokerWithWeight{invoker: invoker.invoker, weight: nw})
+		if nw < min {
+			min = nw
+		}
+	}
+	return ret, min, nil
+}
+
+func (lb *ringhashLoadBalance) pick(h uint64, items []*ringEntry) *ringEntry {
+	i := sort.Search(len(items), func(i int) bool { return items[i].hash >= h })
+	if i == len(items) {
+		// If not found, and h is greater than the largest hash, return the
+		// first item.
+		i = 0
+	}
+	return items[i]
+}
+
+func (lb *ringhashLoadBalance) generateHash(invocation protocol.Invocation, hashPolicies []*resource.HashPolicy) uint64 {
+	var hash uint64

Review Comment:
   done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] sanxun0325 commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
sanxun0325 commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r852676436


##########
cluster/loadbalance/xds/ringhash/ringhash.go:
##########
@@ -0,0 +1,87 @@
+/*

Review Comment:
   done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] LaurenceLiZhixin commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
LaurenceLiZhixin commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r851113358


##########
cluster/loadbalance/xds/ringhash/ringhash.go:
##########
@@ -0,0 +1,87 @@
+/*

Review Comment:
   这个文件能不能放到 cluster/loadbalance/ringhash 下面



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] sanxun0325 commented on a diff in pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
sanxun0325 commented on code in PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#discussion_r851279465


##########
cluster/loadbalance/xds/ringhash/ringhash.go:
##########
@@ -0,0 +1,87 @@
+/*

Review Comment:
   是可以的,不过后面xds应该怀有其他的负载均衡能力,我想的是尽量把xds负载均衡的功能都搞在一起不和原来的混合



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] AlexStocks commented on pull request #1828: xds ring hash

Posted by GitBox <gi...@apache.org>.
AlexStocks commented on PR #1828:
URL: https://github.com/apache/dubbo-go/pull/1828#issuecomment-1096065660

   @sanxun0325 整体我觉得没啥问题,注意下 ut 覆盖率。


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org