You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/11/16 12:14:46 UTC
[dubbo-go] branch 3.0 updated: [ISSUE #2122] refactor registry polaris project (#2125)
This is an automated email from the ASF dual-hosted git repository.
alexstocks pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/3.0 by this push:
new d70b6c0db [ISSUE #2122] refactor registry polaris project (#2125)
d70b6c0db is described below
commit d70b6c0db44b4790ff4de1be8936162817be8080
Author: liaochuntao <li...@live.com>
AuthorDate: Wed Nov 16 20:14:39 2022 +0800
[ISSUE #2122] refactor registry polaris project (#2125)
* refactor registry polaris project
* refactor registry polaris project
* refactor registry polaris project
* refactor registry polaris project
---
common/constant/key.go | 2 -
go.mod | 6 +-
go.sum | 29 +++---
registry/polaris/core.go | 5 +-
registry/polaris/listener.go | 2 +-
registry/polaris/registry.go | 172 ++++++++++------------------------
registry/polaris/service_discovery.go | 90 +++++++-----------
registry/polaris/utils.go | 12 ++-
remoting/polaris/builder.go | 92 ++++++++++++------
remoting/polaris/builder_test.go | 65 +------------
remoting/polaris/polaris.yaml | 2 -
11 files changed, 189 insertions(+), 288 deletions(-)
diff --git a/common/constant/key.go b/common/constant/key.go
index 12d41c794..d7fb47884 100644
--- a/common/constant/key.go
+++ b/common/constant/key.go
@@ -267,8 +267,6 @@ const (
const (
PolarisKey = "polaris"
PolarisDefaultRoleType = 3
- PolarisConfigFilePath = "configPath"
- PolarisNamespace = "namespace"
PolarisServiceToken = "token"
PolarisServiceNameSeparator = ":"
PolarisDubboPath = "DUBBOPATH"
diff --git a/go.mod b/go.mod
index 27701f76b..b67c712bc 100644
--- a/go.mod
+++ b/go.mod
@@ -33,13 +33,14 @@ require (
github.com/jinzhu/copier v0.3.5
github.com/knadh/koanf v1.4.4
github.com/magiconair/properties v1.8.6
+ github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mitchellh/mapstructure v1.5.0
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
github.com/nacos-group/nacos-sdk-go/v2 v2.1.2
github.com/natefinch/lumberjack v2.0.0+incompatible
github.com/opentracing/opentracing-go v1.2.0
github.com/pkg/errors v0.9.1
- github.com/polarismesh/polaris-go v1.1.0
+ github.com/polarismesh/polaris-go v1.2.0
github.com/prometheus/client_golang v1.12.2
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b
github.com/stretchr/testify v1.8.1
@@ -48,8 +49,9 @@ require (
go.opentelemetry.io/otel v1.11.0
go.opentelemetry.io/otel/trace v1.11.0
go.uber.org/atomic v1.9.0
+ go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.21.0
- google.golang.org/genproto v0.0.0-20211104193956-4c6863e31247
+ google.golang.org/genproto v0.0.0-20220504150022-98cd25cafc72
google.golang.org/grpc v1.50.1
google.golang.org/protobuf v1.28.1
gopkg.in/yaml.v2 v2.4.0
diff --git a/go.sum b/go.sum
index 5d03ba488..47f43871e 100644
--- a/go.sum
+++ b/go.sum
@@ -168,6 +168,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
+github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo=
+github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/dubbogo/go-zookeeper v1.0.3/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c=
github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5 h1:XoR8SSVziXe698dt4uZYDfsmHpKLemqAgFyndQsq5Kw=
github.com/dubbogo/go-zookeeper v1.0.4-0.20211212162352-f9d2183d89d5/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c=
@@ -226,7 +228,6 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
-github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
github.com/go-co-op/gocron v1.9.0 h1:+V+DDenw3ryB7B+tK1bAIC5p0ruw4oX9IqAsdRnGIf0=
@@ -539,8 +540,9 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
@@ -630,8 +632,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/polarismesh/polaris-go v1.1.0 h1:nFvn3q3XaVFhzF7pBnIySrN0ZZBwvbbYXC5r2DpsQN0=
-github.com/polarismesh/polaris-go v1.1.0/go.mod h1:tquawfjEKp1W3ffNJQSzhfditjjoZ7tvhOCElN7Efzs=
+github.com/polarismesh/polaris-go v1.2.0 h1:GIWvUno4DB0PD3HC7bHmTCeG+a54neMrVvNPiRXJUtc=
+github.com/polarismesh/polaris-go v1.2.0/go.mod h1:HsN0ierETIujHpmnnYJ3qkwQw4QGAECuHvBZTDaw1tI=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
@@ -833,21 +835,20 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
+go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
-go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -948,11 +949,11 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211105192438-b53810dc28af/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA=
+golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1044,12 +1045,15 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211106132015-ebca88c72f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956 h1:XeJjHH1KiLpKGb6lvMiksZ9l0fVUh+AmGcm0nOMEBOY=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1199,8 +1203,9 @@ google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20211104193956-4c6863e31247 h1:ZONpjmFT5e+I/0/xE3XXbG5OIvX2hRYzol04MhKBl2E=
google.golang.org/genproto v0.0.0-20211104193956-4c6863e31247/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220504150022-98cd25cafc72 h1:iif0mpUetMBqcQPUoq+JnCcmzvfpp8wRx515va8wP1c=
+google.golang.org/genproto v0.0.0-20220504150022-98cd25cafc72/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
@@ -1228,7 +1233,8 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
-google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY=
google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
@@ -1245,6 +1251,7 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
diff --git a/registry/polaris/core.go b/registry/polaris/core.go
index 7e9f30459..f2b35332a 100644
--- a/registry/polaris/core.go
+++ b/registry/polaris/core.go
@@ -23,7 +23,8 @@ import (
)
import (
- "github.com/polarismesh/polaris-go/api"
+ api "github.com/polarismesh/polaris-go"
+ internalapi "github.com/polarismesh/polaris-go/api"
"github.com/polarismesh/polaris-go/pkg/model"
)
@@ -88,7 +89,7 @@ func (watcher *PolarisServiceWatcher) startWatch() {
select {
case event := <-resp.EventChannel:
eType := event.GetSubScribeEventType()
- if eType == api.EventInstance {
+ if eType == internalapi.EventInstance {
insEvent := event.(*model.InstanceEvent)
if insEvent.AddEvent != nil {
diff --git a/registry/polaris/listener.go b/registry/polaris/listener.go
index 49ef6dcdd..c847dd7bc 100644
--- a/registry/polaris/listener.go
+++ b/registry/polaris/listener.go
@@ -57,7 +57,7 @@ func NewPolarisListener(watcher *PolarisServiceWatcher) (*polarisListener, error
func (pl *polarisListener) startListen() {
pl.watcher.AddSubscriber(func(et remoting.EventType, ins []model.Instance) {
for i := range ins {
- pl.events.In() <- &config_center.ConfigChangeEvent{Value: generateUrl(ins[i]), ConfigType: et}
+ pl.events.In() <- &config_center.ConfigChangeEvent{Value: ins[i], ConfigType: et}
}
})
}
diff --git a/registry/polaris/registry.go b/registry/polaris/registry.go
index 7b0526a77..02f156722 100644
--- a/registry/polaris/registry.go
+++ b/registry/polaris/registry.go
@@ -18,7 +18,6 @@
package polaris
import (
- "context"
"strconv"
"sync"
"time"
@@ -29,7 +28,7 @@ import (
perrors "github.com/pkg/errors"
- "github.com/polarismesh/polaris-go/api"
+ api "github.com/polarismesh/polaris-go"
"github.com/polarismesh/polaris-go/pkg/model"
)
@@ -52,98 +51,72 @@ func init() {
// newPolarisRegistry will create new instance
func newPolarisRegistry(url *common.URL) (registry.Registry, error) {
- sdkCtx, ns, err := polaris.GetPolarisConfig(url)
- if err != nil {
+ if err := polaris.InitSDKContext(url); err != nil {
return &polarisRegistry{}, err
}
+
+ providerApi, err := polaris.GetProviderAPI()
+ if err != nil {
+ return nil, err
+ }
+
+ consumerApi, err := polaris.GetConsumerAPI()
+ if err != nil {
+ return nil, err
+ }
+
pRegistry := &polarisRegistry{
- namespace: ns,
- provider: api.NewProviderAPIByContext(sdkCtx),
- consumer: api.NewConsumerAPIByContext(sdkCtx),
- lock: &sync.RWMutex{},
- registryUrls: make(map[string]*PolarisHeartbeat),
- listenerLock: &sync.RWMutex{},
+ url: url,
+ namespace: url.GetParam(constant.RegistryNamespaceKey, constant.PolarisDefaultNamespace),
+ provider: providerApi,
+ consumer: consumerApi,
+ registryUrls: make([]*common.URL, 0, 4),
+ watchers: map[string]*PolarisServiceWatcher{},
}
return pRegistry, nil
}
type polarisRegistry struct {
- consumer api.ConsumerAPI
namespace string
url *common.URL
+ consumer api.ConsumerAPI
provider api.ProviderAPI
- lock *sync.RWMutex
- registryUrls map[string]*PolarisHeartbeat
+ lock sync.RWMutex
+ registryUrls []*common.URL
+ listenerLock sync.RWMutex
watchers map[string]*PolarisServiceWatcher
- listenerLock *sync.RWMutex
}
// Register will register the service @url to its polaris registry center.
func (pr *polarisRegistry) Register(url *common.URL) error {
+
serviceName := getServiceName(url)
- param := createRegisterParam(url, serviceName)
- resp, err := pr.provider.Register(param)
+ request := createRegisterParam(url, serviceName)
+ request.Namespace = pr.namespace
+ resp, err := pr.provider.RegisterInstance(request)
if err != nil {
return err
}
if resp.Existed {
logger.Warnf("instance already regist, namespace:%+v, service:%+v, host:%+v, port:%+v",
- param.Namespace, param.Service, param.Host, param.Port)
+ request.Namespace, request.Service, request.Host, request.Port)
}
-
- pr.lock.Lock()
- defer pr.lock.Unlock()
-
url.SetParam(constant.PolarisInstanceID, resp.InstanceID)
- ctx, cancel := context.WithCancel(context.Background())
- go pr.doHeartbeat(ctx, param)
+ pr.lock.Lock()
+ pr.registryUrls = append(pr.registryUrls, url)
+ pr.lock.Unlock()
- pr.registryUrls[url.Key()] = &PolarisHeartbeat{
- url: url,
- cancel: cancel,
- }
return nil
}
// UnRegister returns nil if unregister successfully. If not, returns an error.
func (pr *polarisRegistry) UnRegister(conf *common.URL) error {
- var (
- ok bool
- err error
- oldVal *PolarisHeartbeat
- )
-
- func() {
- pr.lock.Lock()
- defer pr.lock.Unlock()
-
- oldVal, ok = pr.registryUrls[conf.Key()]
-
- if !ok {
- err = perrors.Errorf("Path{%s} has not registered", conf.Key())
- return
- }
-
- oldVal.cancel()
- delete(pr.registryUrls, oldVal.url.Key())
- }()
-
- if err != nil {
- return err
- }
-
request := createDeregisterParam(conf, getServiceName(conf))
-
- err = pr.provider.Deregister(request)
- if err != nil {
- func() {
- pr.lock.Lock()
- defer pr.lock.Unlock()
- pr.registryUrls[conf.Key()] = oldVal
- }()
+ request.Namespace = pr.namespace
+ if err := pr.provider.Deregister(request); err != nil {
return perrors.WithMessagef(err, "register(conf:%+v)", conf)
}
return nil
@@ -159,26 +132,17 @@ func (pr *polarisRegistry) Subscribe(url *common.URL, notifyListener registry.No
timer := time.NewTimer(time.Duration(RegistryConnDelay) * time.Second)
defer timer.Stop()
- req := api.WatchServiceRequest{
- WatchServiceRequest: model.WatchServiceRequest{
- Key: model.ServiceKey{
- Service: common.GetSubscribeName(url),
- Namespace: pr.namespace,
- },
- },
- }
-
for {
- watcher, err := newPolarisWatcher(&req, pr.consumer)
-
+ serviceName := getSubscribeName(url)
+ watcher, err := pr.createPolarisWatcher(serviceName)
if err != nil {
logger.Warnf("getwatcher() = err:%v", perrors.WithStack(err))
<-timer.C
timer.Reset(time.Duration(RegistryConnDelay) * time.Second)
continue
}
- listener, err := NewPolarisListener(watcher)
+ listener, err := NewPolarisListener(watcher)
if err != nil {
logger.Warnf("getListener() = err:%v", perrors.WithStack(err))
<-timer.C
@@ -186,13 +150,6 @@ func (pr *polarisRegistry) Subscribe(url *common.URL, notifyListener registry.No
continue
}
- if err != nil {
- logger.Warnf("getwatcher() = err:%v", perrors.WithStack(err))
- timer := time.NewTimer(time.Duration(RegistryConnDelay) * time.Second)
- timer.Reset(time.Duration(RegistryConnDelay) * time.Second)
- continue
- }
-
for {
serviceEvent, err := listener.Next()
@@ -203,7 +160,6 @@ func (pr *polarisRegistry) Subscribe(url *common.URL, notifyListener registry.No
}
logger.Infof("update begin, service event: %v", serviceEvent.String())
notifyListener.Notify(serviceEvent)
- watcher.startWatch()
}
}
}
@@ -246,12 +202,12 @@ func (pr *polarisRegistry) createPolarisWatcher(serviceName string) (*PolarisSer
// Destroy stop polaris registry.
func (pr *polarisRegistry) Destroy() {
- for _, val := range pr.registryUrls {
- val.cancel()
- err := pr.UnRegister(val.url)
- logger.Infof("DeRegister Polaris URL:%+v", val.url)
+ for i := range pr.registryUrls {
+ url := pr.registryUrls[i]
+ err := pr.UnRegister(url)
+ logger.Infof("DeRegister Polaris URL:%+v", url)
if err != nil {
- logger.Errorf("Deregister URL:%+v err:%v", val.url, err.Error())
+ logger.Errorf("Deregister Polaris URL:%+v err:%v", url, err.Error())
}
}
return
@@ -262,31 +218,6 @@ func (pr *polarisRegistry) IsAvailable() bool {
return true
}
-// doHeartbeat Since polaris does not support automatic reporting of instance heartbeats, separate logic is
-//
-// needed to implement it
-func (pr *polarisRegistry) doHeartbeat(ctx context.Context, ins *api.InstanceRegisterRequest) {
- ticker := time.NewTicker(time.Duration(4) * time.Second)
-
- heartbeat := &api.InstanceHeartbeatRequest{
- InstanceHeartbeatRequest: model.InstanceHeartbeatRequest{
- Service: ins.Service,
- Namespace: ins.Namespace,
- Host: ins.Host,
- Port: ins.Port,
- },
- }
-
- for {
- select {
- case <-ctx.Done():
- return
- case <-ticker.C:
- pr.provider.Heartbeat(heartbeat)
- }
- }
-}
-
// createRegisterParam convert dubbo url to polaris instance register request
func createRegisterParam(url *common.URL, serviceName string) *api.InstanceRegisterRequest {
common.HandleRegisterIPAndPort(url)
@@ -299,14 +230,16 @@ func createRegisterParam(url *common.URL, serviceName string) *api.InstanceRegis
})
metadata[constant.PolarisDubboPath] = url.Path
+ ver := url.GetParam("version", "")
+
req := &api.InstanceRegisterRequest{
InstanceRegisterRequest: model.InstanceRegisterRequest{
- Service: serviceName,
- Namespace: url.GetParam(constant.PolarisNamespace, constant.PolarisDefaultNamespace),
- Host: url.Ip,
- Port: port,
- Protocol: &protocolForDubboGO,
- Metadata: metadata,
+ Service: serviceName,
+ Host: url.Ip,
+ Port: port,
+ Protocol: &protocolForDubboGO,
+ Version: &ver,
+ Metadata: metadata,
},
}
@@ -321,10 +254,9 @@ func createDeregisterParam(url *common.URL, serviceName string) *api.InstanceDeR
port, _ := strconv.Atoi(url.Port)
return &api.InstanceDeRegisterRequest{
InstanceDeRegisterRequest: model.InstanceDeRegisterRequest{
- Service: serviceName,
- Namespace: url.GetParam(constant.PolarisNamespace, constant.PolarisDefaultNamespace),
- Host: url.Ip,
- Port: port,
+ Service: serviceName,
+ Host: url.Ip,
+ Port: port,
},
}
}
diff --git a/registry/polaris/service_discovery.go b/registry/polaris/service_discovery.go
index c4d6f189b..bb460875a 100644
--- a/registry/polaris/service_discovery.go
+++ b/registry/polaris/service_discovery.go
@@ -18,11 +18,8 @@
package polaris
import (
- "context"
"fmt"
- "net/url"
"sync"
- "time"
)
import (
@@ -32,42 +29,60 @@ import (
perrors "github.com/pkg/errors"
- "github.com/polarismesh/polaris-go/api"
+ api "github.com/polarismesh/polaris-go"
"github.com/polarismesh/polaris-go/pkg/model"
)
import (
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
- "dubbo.apache.org/dubbo-go/v3/config"
+ "dubbo.apache.org/dubbo-go/v3/common/extension"
"dubbo.apache.org/dubbo-go/v3/registry"
"dubbo.apache.org/dubbo-go/v3/remoting"
"dubbo.apache.org/dubbo-go/v3/remoting/polaris"
)
+func init() {
+ extension.SetServiceDiscovery(constant.PolarisKey, newPolarisServiceDiscovery)
+}
+
// newPolarisServiceDiscovery will create new service discovery instance
-func newPolarisServiceDiscovery() (registry.ServiceDiscovery, error) {
- metadataReportConfig := config.GetMetadataReportConfg()
- url := common.NewURLWithOptions(
- common.WithParams(make(url.Values)),
- common.WithParamsValue(constant.RegistryTimeoutKey, metadataReportConfig.Timeout))
- url.Location = metadataReportConfig.Address
+func newPolarisServiceDiscovery(url *common.URL) (registry.ServiceDiscovery, error) {
+ discoveryURL := common.NewURLWithOptions(
+ common.WithParams(url.GetParams()),
+ common.WithParamsValue(constant.TimeoutKey, url.GetParam(constant.RegistryTimeoutKey, constant.DefaultRegTimeout)),
+ common.WithParamsValue(constant.PolarisServiceToken, url.Password),
+ common.WithParamsValue(constant.RegistryNamespaceKey, url.GetParam(constant.RegistryNamespaceKey, constant.PolarisDefaultNamespace)))
+ discoveryURL.Location = url.Location
+ discoveryURL.Password = url.Password
+
+ if err := polaris.InitSDKContext(url); err != nil {
+ return nil, err
+ }
+
+ providerApi, err := polaris.GetProviderAPI()
+ if err != nil {
+ return nil, err
+ }
- sdkCtx, namespace, err := polaris.GetPolarisConfig(url)
+ consumerApi, err := polaris.GetConsumerAPI()
+ if err != nil {
+ return nil, err
+ }
if err != nil {
return nil, perrors.WithMessage(err, "create polaris namingClient failed.")
}
- descriptor := fmt.Sprintf("polaris-service-discovery[%s]", metadataReportConfig.Address)
+ descriptor := fmt.Sprintf("polaris-service-discovery[%s]", discoveryURL.Location)
newInstance := &polarisServiceDiscovery{
- namespace: namespace,
+ namespace: discoveryURL.GetParam(constant.RegistryNamespaceKey, constant.PolarisDefaultNamespace),
descriptor: descriptor,
instanceLock: &sync.RWMutex{},
- consumer: api.NewConsumerAPIByContext(sdkCtx),
- provider: api.NewProviderAPIByContext(sdkCtx),
- registryInstances: make(map[string]*PolarisHeartbeat),
+ consumer: consumerApi,
+ provider: providerApi,
+ registryInstances: make(map[string]*PolarisInstanceInfo),
listenerLock: &sync.RWMutex{},
watchers: make(map[string]*PolarisServiceWatcher),
}
@@ -81,7 +96,7 @@ type polarisServiceDiscovery struct {
consumer api.ConsumerAPI
services *gxset.HashSet
instanceLock *sync.RWMutex
- registryInstances map[string]*PolarisHeartbeat
+ registryInstances map[string]*PolarisInstanceInfo
watchers map[string]*PolarisServiceWatcher
listenerLock *sync.RWMutex
}
@@ -90,9 +105,6 @@ type polarisServiceDiscovery struct {
// and close polaris.ConsumerAPI and polaris.ProviderAPI
func (polaris *polarisServiceDiscovery) Destroy() error {
for _, inst := range polaris.registryInstances {
-
- inst.cancel()
-
err := polaris.Unregister(inst.instance)
logger.Infof("Unregister polaris instance:%+v", inst)
if err != nil {
@@ -108,7 +120,7 @@ func (polaris *polarisServiceDiscovery) Destroy() error {
func (polaris *polarisServiceDiscovery) Register(instance registry.ServiceInstance) error {
ins := convertToRegisterInstance(polaris.namespace, instance)
- resp, err := polaris.provider.Register(ins)
+ resp, err := polaris.provider.RegisterInstance(ins)
if err != nil {
return perrors.WithMessage(err, "could not register the instance. "+instance.GetServiceName())
}
@@ -118,14 +130,10 @@ func (polaris *polarisServiceDiscovery) Register(instance registry.ServiceInstan
polaris.namespace, instance.GetServiceName(), instance.GetHost(), instance.GetPort())
}
- ctx, cancel := context.WithCancel(context.Background())
- go polaris.doHeartbeat(ctx, ins)
-
polaris.instanceLock.Lock()
defer polaris.instanceLock.Unlock()
- polaris.registryInstances[getInstanceKey(polaris.namespace, instance)] = &PolarisHeartbeat{
- cancel: cancel,
+ polaris.registryInstances[getInstanceKey(polaris.namespace, instance)] = &PolarisInstanceInfo{
instance: instance,
}
polaris.services.Add(instance.GetServiceName())
@@ -149,10 +157,8 @@ func (polaris *polarisServiceDiscovery) Unregister(instance registry.ServiceInst
func() {
polaris.instanceLock.Lock()
defer polaris.instanceLock.Unlock()
-
key := getInstanceKey(polaris.namespace, instance)
- if heartbeat, exist := polaris.registryInstances[key]; exist {
- heartbeat.cancel()
+ if _, exist := polaris.registryInstances[key]; exist {
delete(polaris.registryInstances, key)
}
}()
@@ -340,27 +346,3 @@ func convertToDeregisterInstance(namespace string, instance registry.ServiceInst
},
}
}
-
-// doHeartbeat Since polaris does not support automatic reporting of instance heartbeats, separate logic is
-// needed to implement it
-func (polaris *polarisServiceDiscovery) doHeartbeat(ctx context.Context, ins *api.InstanceRegisterRequest) {
- ticker := time.NewTicker(time.Duration(4) * time.Second)
-
- heartbeat := &api.InstanceHeartbeatRequest{
- InstanceHeartbeatRequest: model.InstanceHeartbeatRequest{
- Service: ins.Service,
- Namespace: ins.Namespace,
- Host: ins.Host,
- Port: ins.Port,
- },
- }
-
- for {
- select {
- case <-ctx.Done():
- return
- case <-ticker.C:
- polaris.provider.Heartbeat(heartbeat)
- }
- }
-}
diff --git a/registry/polaris/utils.go b/registry/polaris/utils.go
index 833913145..39b50a3c5 100644
--- a/registry/polaris/utils.go
+++ b/registry/polaris/utils.go
@@ -19,7 +19,6 @@ package polaris
import (
"bytes"
- "context"
"fmt"
"strconv"
"strings"
@@ -35,8 +34,7 @@ var (
protocolForDubboGO string = "dubbo"
)
-type PolarisHeartbeat struct {
- cancel context.CancelFunc
+type PolarisInstanceInfo struct {
instance registry.ServiceInstance
url *common.URL
}
@@ -61,6 +59,14 @@ func getServiceName(url *common.URL) string {
return buffer.String()
}
+func getSubscribeName(url *common.URL) string {
+ var buffer bytes.Buffer
+
+ buffer.Write([]byte(common.DubboNodes[common.PROVIDER]))
+ appendParam(&buffer, url, constant.InterfaceKey)
+ return buffer.String()
+}
+
// just copy from dubbo-go for nacos
func appendParam(target *bytes.Buffer, url *common.URL, key string) {
value := url.GetParam(key, "")
diff --git a/remoting/polaris/builder.go b/remoting/polaris/builder.go
index 0042aa048..a45fad7d9 100644
--- a/remoting/polaris/builder.go
+++ b/remoting/polaris/builder.go
@@ -23,57 +23,93 @@ import (
"net"
"strconv"
"strings"
+ "sync"
)
import (
perrors "github.com/pkg/errors"
+ "github.com/polarismesh/polaris-go"
"github.com/polarismesh/polaris-go/api"
"github.com/polarismesh/polaris-go/pkg/config"
- "github.com/polarismesh/polaris-go/pkg/model"
)
import (
"dubbo.apache.org/dubbo-go/v3/common"
- "dubbo.apache.org/dubbo-go/v3/common/constant"
)
-// GetPolarisConfig get polaris config from dubbo url
-func GetPolarisConfig(url *common.URL) (api.SDKContext, string, error) {
- if url == nil {
- return nil, "", errors.New("url is empty!")
+var (
+ once sync.Once
+ sdkCtx api.SDKContext
+)
+
+var (
+ ErrorSDKContextNotInit = errors.New("polaris SDKContext not init")
+)
+
+// GetConsumerAPI creates one polaris ConsumerAPI instance
+func GetConsumerAPI() (polaris.ConsumerAPI, error) {
+ if sdkCtx == nil {
+ return nil, ErrorSDKContextNotInit
}
- addresses := strings.Split(url.Location, ",")
- serverConfigs := make([]string, 0, len(addresses))
- for _, addr := range addresses {
- ip, portStr, err := net.SplitHostPort(addr)
- if err != nil {
- return nil, "", perrors.WithMessagef(err, "split [%s] ", addr)
- }
- port, _ := strconv.Atoi(portStr)
- serverConfigs = append(serverConfigs, fmt.Sprintf("%s:%d", ip, uint64(port)))
+ return polaris.NewConsumerAPIByContext(sdkCtx), nil
+}
+
+// GetProviderAPI creates one polaris ProviderAPI instance
+func GetProviderAPI() (polaris.ProviderAPI, error) {
+ if sdkCtx == nil {
+ return nil, ErrorSDKContextNotInit
}
- polarisConf := config.NewDefaultConfiguration(serverConfigs)
+ return polaris.NewProviderAPIByContext(sdkCtx), nil
+}
- confPath := url.GetParam(constant.PolarisConfigFilePath, "")
- if confPath != "" && model.IsFile(confPath) {
- complexConf, err := config.LoadConfigurationByFile(confPath)
- if err != nil {
- return nil, "", err
- }
- mergePolarisConfiguration(polarisConf, complexConf)
+// GetRouterAPI create one polaris RouterAPI instance
+func GetRouterAPI() (polaris.RouterAPI, error) {
+ if sdkCtx == nil {
+ return nil, ErrorSDKContextNotInit
+ }
+
+ return polaris.NewRouterAPIByContext(sdkCtx), nil
+}
- polarisConf = complexConf
+// GetLimiterAPI creates one polaris LimiterAPI instance
+func GetLimiterAPI() (polaris.LimitAPI, error) {
+ if sdkCtx == nil {
+ return nil, ErrorSDKContextNotInit
}
- sdkCtx, err := api.InitContextByConfig(polarisConf)
- if err != nil {
- return nil, "", err
+ return polaris.NewLimitAPIByContext(sdkCtx), nil
+}
+
+// InitSDKContext inits polaris SDKContext by URL
+func InitSDKContext(url *common.URL) error {
+ if url == nil {
+ return errors.New("url is empty!")
}
- return sdkCtx, url.GetParam(constant.PolarisNamespace, constant.PolarisDefaultNamespace), nil
+ var rerr error
+ once.Do(func() {
+
+ addresses := strings.Split(url.Location, ",")
+ serverConfigs := make([]string, 0, len(addresses))
+ for _, addr := range addresses {
+ ip, portStr, err := net.SplitHostPort(addr)
+ if err != nil {
+ rerr = perrors.WithMessagef(err, "split [%s] ", addr)
+ }
+ port, _ := strconv.Atoi(portStr)
+ serverConfigs = append(serverConfigs, fmt.Sprintf("%s:%d", ip, uint64(port)))
+ }
+
+ polarisConf := config.NewDefaultConfiguration(serverConfigs)
+ _sdkCtx, err := api.InitContextByConfig(polarisConf)
+ rerr = err
+ sdkCtx = _sdkCtx
+ })
+
+ return rerr
}
func mergePolarisConfiguration(easy, complexConf config.Configuration) {
diff --git a/remoting/polaris/builder_test.go b/remoting/polaris/builder_test.go
index 2cf489836..6a27f3307 100644
--- a/remoting/polaris/builder_test.go
+++ b/remoting/polaris/builder_test.go
@@ -28,79 +28,18 @@ import (
import (
"dubbo.apache.org/dubbo-go/v3/common"
- "dubbo.apache.org/dubbo-go/v3/common/constant"
- "dubbo.apache.org/dubbo-go/v3/config"
)
-func TestGetPolarisConfig(t *testing.T) {
-
- rc := &config.RemoteConfig{}
- rc.Params = make(map[string]string)
-
- rc.Protocol = "polaris"
- rc.Address = "127.0.0.1:8091"
-
- rc.Params[constant.PolarisNamespace] = "default"
-
- url, err := rc.ToURL()
- if err != nil {
- t.Fatal(err)
- }
-
- sdkCtx, namespace, err := GetPolarisConfig(url)
-
- if err != nil {
- t.Fatal(err)
- }
- assert.NotNil(t, sdkCtx, "SDKContext")
-
- assert.Equal(t, "default", namespace, "namespace")
- assert.ElementsMatch(t, []string{"127.0.0.1:8091"}, sdkCtx.GetConfig().GetGlobal().GetServerConnector().GetAddresses(), "server address")
-}
-
-func TestGetPolarisConfigWithExternalFile(t *testing.T) {
-
- rc := &config.RemoteConfig{}
- rc.Params = make(map[string]string)
-
- rc.Protocol = "polaris"
- rc.Address = "127.0.0.1:8091"
-
- rc.Params[constant.PolarisNamespace] = "default"
- rc.Params[constant.PolarisConfigFilePath] = "./polaris.yaml"
-
- url, err := rc.ToURL()
- if err != nil {
- t.Fatal(err)
- }
-
- sdkCtx, namespace, err := GetPolarisConfig(url)
-
- if err != nil {
- t.Fatal(err)
- }
- assert.NotNil(t, sdkCtx, "SDKContext")
-
- assert.Equal(t, "default", namespace, "namespace")
- assert.ElementsMatch(t, []string{"127.0.0.1:8091", "127.0.0.2:8091"}, sdkCtx.GetConfig().GetGlobal().GetServerConnector().GetAddresses(), "server address")
-}
-
func TestGetPolarisConfigByUrl(t *testing.T) {
regurl := getRegUrl()
- sdkCtx, namespace, err := GetPolarisConfig(regurl)
+ err := InitSDKContext(regurl)
assert.Nil(t, err)
- assert.Equal(t, "default", namespace, "namespace")
- assert.ElementsMatch(t, []string{"127.0.0.1:8091", "127.0.0.2:8091"}, sdkCtx.GetConfig().GetGlobal().GetServerConnector().GetAddresses(), "server address")
+ assert.ElementsMatch(t, []string{"127.0.0.1:8091"}, sdkCtx.GetConfig().GetGlobal().GetServerConnector().GetAddresses(), "server address")
}
func getRegUrl() *common.URL {
-
regurlMap := url.Values{}
- regurlMap.Set(constant.PolarisNamespace, "default")
- regurlMap.Set(constant.PolarisConfigFilePath, "./polaris.yaml")
-
regurl, _ := common.NewURL("registry://127.0.0.1:8091", common.WithParams(regurlMap))
-
return regurl
}
diff --git a/remoting/polaris/polaris.yaml b/remoting/polaris/polaris.yaml
index 3d794ec55..2347aad37 100644
--- a/remoting/polaris/polaris.yaml
+++ b/remoting/polaris/polaris.yaml
@@ -19,8 +19,6 @@ global:
maxRetryTimes: 5
retryInterval: 1s
serverConnector:
- addresses:
- - 127.0.0.2:8091
protocol: grpc
connectTimeout: 500ms
messageTimeout: 1s