Skip to content
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

up:nacos sdk version #1105

Closed
wants to merge 71 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
2aa489a
Merge pull request #981 from lzp0412/develop
AlexStocks Jan 6, 2021
3120a22
Merge remote-tracking branch 'upstream/develop' into fix_zk_too_many_…
wenxuwan Jan 23, 2021
33dc7d4
try to fix zk too many connections
wenxuwan Jan 23, 2021
984a1ae
remove close function in service_discovery
wenxuwan Jan 23, 2021
06b1cd1
remove unused code
wenxuwan Jan 23, 2021
16a43ac
try to fix lint
wenxuwan Jan 23, 2021
186a8e7
fix imports format and ut
wenxuwan Jan 23, 2021
a53ed2b
fix import fmt
wenxuwan Jan 23, 2021
bd59cfc
fix ut error
wenxuwan Jan 24, 2021
ead5951
fix ut error
wenxuwan Jan 24, 2021
55f40f7
Merge remote-tracking branch 'upstream/develop' into fix_zk_too_many_…
wenxuwan Jan 24, 2021
bb84695
fix ut
wenxuwan Jan 24, 2021
394cbb2
fix lint
wenxuwan Jan 24, 2021
930a15b
try to fix ut
wenxuwan Jan 25, 2021
7df6426
fix ut
wenxuwan Jan 25, 2021
93ae337
fix ut
wenxuwan Jan 25, 2021
2cb436b
so tired to fix the ut
wenxuwan Jan 25, 2021
543721c
fix lint
wenxuwan Jan 25, 2021
2bc815a
remove client close from registry
wenxuwan Jan 26, 2021
0a215ac
fix provider not started
wenxuwan Jan 26, 2021
e703ce9
Improve config center
luckyxiaoqiang Feb 1, 2021
f1c5ee4
Merge remote-tracking branch 'upstream/1.5' into fix_zk_too_many_tcp_…
wenxuwan Feb 23, 2021
43280d7
change some comments
wenxuwan Feb 25, 2021
6fa3fea
fix facade ut
wenxuwan Feb 25, 2021
132ca25
Merge remote-tracking branch 'upstream/1.5' into fix_zk_too_many_tcp_…
wenxuwan Feb 25, 2021
93374a2
fix glint
wenxuwan Feb 25, 2021
991ef61
Merge remote-tracking branch 'upstream/1.5' into fix_zk_too_many_tcp_…
wenxuwan Feb 25, 2021
cb8b665
fix restart can't find provider error
wenxuwan Feb 26, 2021
3fdbb01
try to fix provider lost
wenxuwan Feb 26, 2021
ef8966c
try to fix provider lost
wenxuwan Feb 27, 2021
ca647ab
try to fix provider can't find error
wenxuwan Feb 27, 2021
3a05f71
fix compile error
wenxuwan Feb 27, 2021
ae6a138
change type error
wenxuwan Feb 27, 2021
a8bc4e1
fix comments
wenxuwan Feb 28, 2021
9926081
Merge pull request #1070 from apache/1.5
Patrick0308 Mar 1, 2021
972a91a
move zk to gost
wenxuwan Mar 2, 2021
0ebe79c
fix lint
wenxuwan Mar 2, 2021
46801c3
replace grpc version
wenxuwan Mar 2, 2021
364be20
update gost version
wenxuwan Mar 3, 2021
786e843
fix compile error
wenxuwan Mar 3, 2021
9d8c910
fix comments
wenxuwan Mar 4, 2021
98ba75e
fix comments
wenxuwan Mar 6, 2021
f54ea24
Merge remote-tracking branch 'upstream/3.0' into 3.0
LaurenceLiZhixin Mar 10, 2021
d8b440e
merge 1.5
AlexStocks Feb 28, 2021
cfd384c
add rpcinvocation_test.go
Mar 11, 2021
a231789
upgrade hession version
wenxuwan Mar 15, 2021
99d3d4f
Merge pull request #1078 from tweitjss/master
AlexStocks Mar 15, 2021
4f60f69
Merge pull request #1030 from luckyxiaoqiang/feature/improve_config_c…
AlexStocks Mar 15, 2021
0b3c7bc
fix: add two feature to readme
LaurenceLiZhixin Mar 15, 2021
9234948
Fix: add file system
LaurenceLiZhixin Mar 15, 2021
68a9c62
Merge pull request #1085 from LaurenceLiZhixin/fix/readme
AlexStocks Mar 15, 2021
6f74ff9
Merge pull request #1010 from wenxuwan/fix_zk_too_many_tcp_conn
AlexStocks Mar 15, 2021
45ca4f3
dubbo-go 拆包bug fix
Mar 17, 2021
6108ed0
Merge branch 'master' of https://github.com/xiejiajun/dubbo-go
Mar 17, 2021
a078cd9
upgrade hession version
wenxuwan Mar 17, 2021
15db1fc
remove hessian2 version history in go.sum
wenxuwan Mar 17, 2021
587753b
Merge pull request #1088 from wenxuwan/fix_zk_too_many_tcp_conn
cityiron Mar 17, 2021
57f7b4e
bug fix: getty RpcServerPackageHandler decode tcp pkg failed because …
Mar 18, 2021
160b834
keep error caller stack
Mar 18, 2021
80a24cb
code improve: use the `errors.Is()` to determine the type of err
Mar 18, 2021
40a9f7c
getty RpcServerPackageHandler decode incomplete tcp package unit test
Mar 18, 2021
8e18ffb
getty RpcServerPackageHandler decode incomplete tcp package unit test
Mar 18, 2021
da44eee
RpcClientPackageHandler error compare code improve
Mar 18, 2021
3afacb4
ut ci failed fix
Mar 18, 2021
0583f46
readwriter_test ci failed fix
Mar 18, 2021
51f6d0f
readwriter_test import code improve
Mar 19, 2021
c6a448b
code improve
Mar 19, 2021
ae5743a
Merge pull request #1090 from xiejiajun/issue-1089
AlexStocks Mar 19, 2021
eb7f50a
up 1.5.6 version
Mar 22, 2021
0a6fe2d
Merge pull request #1097 from cityiron/feature/update1.5.6
AlexStocks Mar 23, 2021
11ef2e8
up:更新go.sum
zhaoyunxing92 Mar 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Finished List:
- Router
* [Condition router](https://github.com/apache/dubbo-go/pull/294)
* [Health check router](https://github.com/apache/dubbo-go/pull/389)
* [Dynamic_tag_router](https://github.com/apache/dubbo-go/pull/703)

- Registry
* ZooKeeper
Expand Down Expand Up @@ -134,6 +135,10 @@ Finished List:
* [Nacos](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/nacos/service_discovery.go)
* [Zookeeper](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/zookeeper/service_discovery.go)
* [Etcd](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/etcdv3/service_discovery.go)
* [File](https://github.com/apache/dubbo-go/pull/732)

- Tool
* [Dubbo-go-cli](https://github.com/apache/dubbo-go/pull/818)

You can know more about dubbo-go by its [roadmap](https://github.com/apache/dubbo-go/wiki/Roadmap).

Expand Down
5 changes: 5 additions & 0 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Apache License, Version 2.0
- 路由器
* [Condition router](https://github.com/apache/dubbo-go/pull/294)
* [Health check router](https://github.com/apache/dubbo-go/pull/389)
* [Dynamic_tag_router](https://github.com/apache/dubbo-go/pull/703)

- 注册中心
* ZooKeeper
Expand Down Expand Up @@ -133,6 +134,10 @@ Apache License, Version 2.0
* [Nacos](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/nacos/service_discovery.go)
* [Zookeeper](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/zookeeper/service_discovery.go)
* [Etcd](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/etcdv3/service_discovery.go)
* [File](https://github.com/apache/dubbo-go/pull/732)

- 工具箱
* [Dubbo-go-cli](https://github.com/apache/dubbo-go/pull/818)

你可以通过访问 [roadmap](https://github.com/apache/dubbo-go/wiki/Roadmap) 知道更多关于 dubbo-go 的信息。

Expand Down
45 changes: 21 additions & 24 deletions cluster/router/chain/chain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import (
)

import (
zk "github.com/dubbogo/go-zookeeper/zk"
gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
"github.com/stretchr/testify/assert"
)

Expand All @@ -38,7 +40,6 @@ import (
_ "github.com/apache/dubbo-go/config_center/zookeeper"
"github.com/apache/dubbo-go/protocol"
"github.com/apache/dubbo-go/protocol/invocation"
"github.com/apache/dubbo-go/remoting/zookeeper"
)

const (
Expand All @@ -53,16 +54,19 @@ const (
consumerFormat = "consumer://%s/com.foo.BarService"
dubboForamt = "dubbo://%s:%d/com.foo.BarService"
anyUrlFormat = "condition://%s/com.foo.BarService"
zk = "zookeeper"
zkName = "zookeeper"
applicationKey = "test-condition"
applicationField = "application"
forceField = "force"
forceValue = "true"
)

var zkCluster *zk.TestCluster

func TestNewRouterChain(t *testing.T) {
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second)
assert.NoError(t, err)
zkCluster = ts
err = z.Create(path)
assert.NoError(t, err)
testyml := `scope: application
Expand All @@ -77,12 +81,12 @@ conditions:
_, err = z.Conn.Set(path, []byte(testyml), 0)
assert.NoError(t, err)
defer func() {
_ = ts.Stop()
z.Delete(path)
z.Close()
}()

zkUrl, _ := common.NewURL(fmt.Sprintf(zkFormat, localIP, ts.Servers[0].Port))
configuration, err := extension.GetConfigCenterFactory(zk).GetDynamicConfiguration(zkUrl)
configuration, err := extension.GetConfigCenterFactory(zkName).GetDynamicConfiguration(zkUrl)
config.GetEnvInstance().SetDynamicConfiguration(configuration)

assert.Nil(t, err)
Expand Down Expand Up @@ -114,7 +118,7 @@ func TestNewRouterChainURLNil(t *testing.T) {
}

func TestRouterChainAddRouters(t *testing.T) {
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
_, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second, gxzookeeper.WithTestCluster(zkCluster))
assert.NoError(t, err)
err = z.Create(path)
assert.NoError(t, err)
Expand All @@ -131,13 +135,12 @@ conditions:
_, err = z.Conn.Set(path, []byte(testyml), 0)
assert.NoError(t, err)
defer func() {
_ = ts.Stop()
assert.NoError(t, err)
z.Delete(path)
z.Close()
}()

zkUrl, _ := common.NewURL(fmt.Sprintf(zkFormat, localIP, ts.Servers[0].Port))
configuration, err := extension.GetConfigCenterFactory(zk).GetDynamicConfiguration(zkUrl)
zkUrl, _ := common.NewURL(fmt.Sprintf(zkFormat, localIP, zkCluster.Servers[0].Port))
configuration, err := extension.GetConfigCenterFactory(zkName).GetDynamicConfiguration(zkUrl)
assert.NoError(t, err)
config.GetEnvInstance().SetDynamicConfiguration(configuration)

Expand All @@ -164,15 +167,10 @@ conditions:
}

func TestRouterChainRoute(t *testing.T) {
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
defer func() {
err = ts.Stop()
assert.NoError(t, err)
z.Close()
}()

ts, _, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second, gxzookeeper.WithTestCluster(zkCluster))
assert.Nil(t, err)
zkUrl, _ := common.NewURL(fmt.Sprintf(zkFormat, localIP, ts.Servers[0].Port))
configuration, err := extension.GetConfigCenterFactory(zk).GetDynamicConfiguration(zkUrl)
configuration, err := extension.GetConfigCenterFactory(zkName).GetDynamicConfiguration(zkUrl)
assert.NoError(t, err)
config.GetEnvInstance().SetDynamicConfiguration(configuration)

Expand All @@ -197,7 +195,7 @@ func TestRouterChainRoute(t *testing.T) {
}

func TestRouterChainRouteAppRouter(t *testing.T) {
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second, gxzookeeper.WithTestCluster(zkCluster))
assert.NoError(t, err)
err = z.Create(path)
assert.NoError(t, err)
Expand All @@ -214,13 +212,12 @@ conditions:
_, err = z.Conn.Set(path, []byte(testyml), 0)
assert.NoError(t, err)
defer func() {
_ = ts.Stop()
assert.NoError(t, err)
z.Delete(path)
z.Close()
}()

zkUrl, _ := common.NewURL(fmt.Sprintf(zkFormat, localIP, ts.Servers[0].Port))
configuration, err := extension.GetConfigCenterFactory(zk).GetDynamicConfiguration(zkUrl)
configuration, err := extension.GetConfigCenterFactory(zkName).GetDynamicConfiguration(zkUrl)
assert.NoError(t, err)
config.GetEnvInstance().SetDynamicConfiguration(configuration)

Expand All @@ -242,7 +239,7 @@ conditions:
}

func TestRouterChainRouteNoRoute(t *testing.T) {
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second, gxzookeeper.WithTestCluster(zkCluster))
assert.Nil(t, err)
defer func() {
_ = ts.Stop()
Expand All @@ -251,7 +248,7 @@ func TestRouterChainRouteNoRoute(t *testing.T) {
}()

zkUrl, _ := common.NewURL(fmt.Sprintf(zkFormat, localIP, ts.Servers[0].Port))
configuration, err := extension.GetConfigCenterFactory(zk).GetDynamicConfiguration(zkUrl)
configuration, err := extension.GetConfigCenterFactory(zkName).GetDynamicConfiguration(zkUrl)
config.GetEnvInstance().SetDynamicConfiguration(configuration)
assert.Nil(t, err)

Expand Down
10 changes: 4 additions & 6 deletions cluster/router/condition/app_router_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
)

import (
gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
"github.com/stretchr/testify/assert"
)

Expand All @@ -35,7 +36,6 @@ import (
"github.com/apache/dubbo-go/config_center"
_ "github.com/apache/dubbo-go/config_center/zookeeper"
"github.com/apache/dubbo-go/remoting"
"github.com/apache/dubbo-go/remoting/zookeeper"
)

const (
Expand All @@ -60,15 +60,14 @@ runtime: false
conditions:
- => host != 172.22.3.91
`
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second)
assert.NoError(t, err)
err = z.Create(routerPath)
assert.NoError(t, err)

_, err = z.Conn.Set(routerPath, []byte(testYML), 0)
assert.NoError(t, err)
defer func() {
err = ts.Stop()
assert.NoError(t, err)
z.Close()
}()
Expand Down Expand Up @@ -116,15 +115,14 @@ conditions:
- => host != 172.22.3.91
- host = 192.168.199.208 => host = 192.168.199.208
`
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second)
assert.NoError(t, err)
err = z.Create(routerPath)
assert.NoError(t, err)

_, err = z.Conn.Set(routerPath, []byte(testYML), 0)
assert.NoError(t, err)
defer func() {
err = ts.Stop()
assert.NoError(t, err)
z.Close()
}()
Expand Down Expand Up @@ -163,7 +161,7 @@ runtime: false
conditions:
- => host != 172.22.3.91
`
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second)
assert.NoError(t, err)
err = z.Create(routerPath)
assert.NoError(t, err)
Expand Down
8 changes: 3 additions & 5 deletions cluster/router/tag/tag_router_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
import (
"github.com/RoaringBitmap/roaring"
"github.com/dubbogo/go-zookeeper/zk"
gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)
Expand All @@ -43,7 +44,6 @@ import (
"github.com/apache/dubbo-go/protocol"
"github.com/apache/dubbo-go/protocol/invocation"
"github.com/apache/dubbo-go/remoting"
"github.com/apache/dubbo-go/remoting/zookeeper"
)

const (
Expand Down Expand Up @@ -260,7 +260,7 @@ type DynamicTagRouter struct {
//rule *RouterRule

route *tagRouter
zkClient *zookeeper.ZookeeperClient
zkClient *gxzookeeper.ZookeeperClient
testCluster *zk.TestCluster
invokers []protocol.Invoker
url *common.URL
Expand Down Expand Up @@ -299,7 +299,7 @@ tags:
- name: tag3
addresses: ["127.0.0.1:20003", "127.0.0.1:20004"]
`
ts, z, _, err := zookeeper.NewMockZookeeperClient("test", 15*time.Second)
ts, z, _, err := gxzookeeper.NewMockZookeeperClient("test", 15*time.Second)
suite.NoError(err)
err = z.Create(routerPath)
suite.NoError(err)
Expand Down Expand Up @@ -334,8 +334,6 @@ tags:

func (suite *DynamicTagRouter) TearDownTest() {
suite.zkClient.Close()
err := suite.testCluster.Stop()
suite.Nil(err)
}

func (suite *DynamicTagRouter) TestDynamicTagRouterSetByIPv4() {
Expand Down
18 changes: 15 additions & 3 deletions common/config/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,22 +72,34 @@ func (env *Environment) UpdateExternalConfigMap(externalMap map[string]string) {
for k, v := range externalMap {
env.externalConfigMap.Store(k, v)
}
env.externalConfigMap.Range(func(key, value interface{}) bool {
if _, ok := externalMap[key.(string)]; !ok {
env.externalConfigMap.Delete(key)
}
return true
})
}

// UpdateAppExternalConfigMap updates env appExternalConfigMap field
func (env *Environment) UpdateAppExternalConfigMap(externalMap map[string]string) {
for k, v := range externalMap {
env.appExternalConfigMap.Store(k, v)
}
env.appExternalConfigMap.Range(func(key, value interface{}) bool {
if _, ok := externalMap[key.(string)]; !ok {
env.appExternalConfigMap.Delete(key)
}
return true
})
}

// Configuration puts externalConfigMap and appExternalConfigMap into list
// List represents a doubly linked list.
func (env *Environment) Configuration() *list.List {
cfgList := list.New()
// The sequence would be: SystemConfiguration -> ExternalConfiguration -> AppExternalConfiguration -> AbstractConfig -> PropertiesConfiguration
cfgList.PushFront(newInmemoryConfiguration(&(env.externalConfigMap)))
cfgList.PushFront(newInmemoryConfiguration(&(env.appExternalConfigMap)))
// The sequence would be: SystemConfiguration -> AppExternalConfiguration -> ExternalConfiguration -> AbstractConfig -> PropertiesConfiguration
cfgList.PushBack(newInmemoryConfiguration(&(env.appExternalConfigMap)))
cfgList.PushBack(newInmemoryConfiguration(&(env.externalConfigMap)))
return cfgList
}

Expand Down
23 changes: 23 additions & 0 deletions common/config/environment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,29 @@ func TestEnvironmentUpdateExternalConfigMap(t *testing.T) {
v, ok := GetEnvInstance().externalConfigMap.Load("1")
assert.True(t, ok)
assert.Equal(t, "2", v)

GetEnvInstance().UpdateExternalConfigMap(map[string]string{"a": "b"})
v, ok = GetEnvInstance().externalConfigMap.Load("a")
assert.True(t, ok)
assert.Equal(t, "b", v)
v, ok = GetEnvInstance().externalConfigMap.Load("1")
assert.False(t, ok)
assert.Equal(t, nil, v)
}

func TestEnvironmentUpdateAppExternalConfigMap(t *testing.T) {
GetEnvInstance().UpdateAppExternalConfigMap(map[string]string{"1": "2"})
v, ok := GetEnvInstance().appExternalConfigMap.Load("1")
assert.True(t, ok)
assert.Equal(t, "2", v)

GetEnvInstance().UpdateAppExternalConfigMap(map[string]string{"a": "b"})
v, ok = GetEnvInstance().appExternalConfigMap.Load("a")
assert.True(t, ok)
assert.Equal(t, "b", v)
v, ok = GetEnvInstance().appExternalConfigMap.Load("1")
assert.False(t, ok)
assert.Equal(t, nil, v)
}

func TestEnvironmentConfigurationAndGetProperty(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions common/constant/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ package constant

const (
// Version apache/dubbo-go version
Version = "1.5.5"
Version = "1.5.6"
// Name module name
Name = "dubbogo"
// Date release date
DATE = "2021/01/05"
DATE = "2021/03/22"
)
5 changes: 4 additions & 1 deletion config/base_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ type BaseConfig struct {
EventDispatcherType string `default:"direct" yaml:"event_dispatcher_type" json:"event_dispatcher_type,omitempty"`
MetricConfig *MetricConfig `yaml:"metrics" json:"metrics,omitempty"`
fileStream *bytes.Buffer

// cache file used to store the current used configurations.
CacheFile string `yaml:"cache_file" json:"cache_file,omitempty" property:"cache_file"`
}

// nolint
Expand Down Expand Up @@ -240,7 +243,7 @@ func setFieldValue(val reflect.Value, id reflect.Value, config *config.InmemoryC

func (c *BaseConfig) fresh() {
configList := config.GetEnvInstance().Configuration()
for element := configList.Front(); element != nil; element = element.Next() {
for element := configList.Back(); element != nil; element = element.Prev() {
cfg := element.Value.(*config.InmemoryConfiguration)
c.freshInternalConfig(cfg)
}
Expand Down
Loading