[Fix: Supports namespaceId.] (#49)
Co-authored-by: chenzeping.ricco <chenzeping.ricco@bytedance.com>
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 69e4992..0e38c4d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -51,6 +51,11 @@
- name: Check out code
uses: actions/checkout@v1
+ - name: Install docker-compose
+ run: |
+ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+ sudo chmod +x /usr/local/bin/docker-compose
+
- name: Start Zookeeper Docker Compose
run: docker-compose -f docker-compose-zk.yml up -d
diff --git a/clients/http_client_factory.go b/clients/http_client_factory.go
index 038f21e..6e2f269 100644
--- a/clients/http_client_factory.go
+++ b/clients/http_client_factory.go
@@ -24,6 +24,7 @@
"github.com/apache/shenyu-client-golang/common/shenyu_error"
"github.com/apache/shenyu-client-golang/model"
"reflect"
+ "strings"
)
/**
@@ -57,65 +58,80 @@
* Register metadata to ShenYu Gateway
**/
func RegisterMetaData(adminTokenData model.AdminTokenData, metaData *model.MetaDataRegister) (registerResult bool, err error) {
- headers := adapterHeaders(adminTokenData)
- params := map[string]string{}
- if metaData.AppName == "" || metaData.Path == "" || metaData.Host == "" || metaData.Port == "" {
+ if metaData.AppName == "" || metaData.Path == "" || metaData.Host == "" || metaData.Port == "" || metaData.NamespaceIds == "" {
return false, shenyu_error.NewShenYuError(constants.MISS_PARAM_ERROR_CODE, constants.MISS_PARAM_ERROR_MSG, err)
}
- params["appName"] = metaData.AppName
- params["path"] = metaData.Path
- params["contextPath"] = metaData.ContextPath
- params["host"] = metaData.Host
- params["port"] = metaData.Port
- if metaData.RPCType != "" {
- params["rpcType"] = metaData.RPCType
- } else {
- params["rpcType"] = constants.RPCTYPE_HTTP
+ namespaceIds := strings.Split(metaData.NamespaceIds, ";")
+
+ for _, namespaceId := range namespaceIds {
+ if namespaceId == "" {
+ continue
+ }
+ params := map[string]string{}
+ params["appName"] = metaData.AppName
+ params["path"] = metaData.Path
+ params["contextPath"] = metaData.ContextPath
+ params["host"] = metaData.Host
+ params["port"] = metaData.Port
+ params["namespaceId"] = namespaceId
+
+ if metaData.RPCType != "" {
+ params["rpcType"] = metaData.RPCType
+ } else {
+ params["rpcType"] = constants.RPCTYPE_HTTP
+ }
+
+ if metaData.RuleName != "" {
+ params["ruleName"] = metaData.RuleName
+ } else {
+ params["ruleName"] = metaData.Path
+ }
+ headers := adapterHeaders(adminTokenData)
+ tokenRequest := initShenYuCommonRequest(headers, params, constants.REGISTER_METADATA, "")
+
+ _, err = http_client.RegisterMetaData(tokenRequest)
+ if err != nil {
+ return false, err
+ }
}
-
- if metaData.RuleName != "" {
- params["ruleName"] = metaData.RuleName
- } else {
- params["ruleName"] = metaData.Path
- }
-
- tokenRequest := initShenYuCommonRequest(headers, params, constants.REGISTER_METADATA, "")
-
- registerResult, err = http_client.RegisterMetaData(tokenRequest)
- if err == nil {
- return registerResult, nil
- } else {
- return false, err
- }
+ return true, nil
}
/**
* Url Register to ShenYu Gateway
**/
func UrlRegister(adminTokenData model.AdminTokenData, urlMetaData *model.URIRegister) (registerResult bool, err error) {
- headers := adapterHeaders(adminTokenData)
- params := map[string]string{}
- if urlMetaData.AppName == "" || urlMetaData.RPCType == "" || urlMetaData.Host == "" || urlMetaData.Port == "" {
+ if urlMetaData.AppName == "" || urlMetaData.RPCType == "" || urlMetaData.Host == "" || urlMetaData.Port == "" || urlMetaData.NamespaceIds == "" {
return false, shenyu_error.NewShenYuError(constants.MISS_PARAM_ERROR_CODE, constants.MISS_PARAM_ERROR_MSG, err)
}
- params["protocol"] = urlMetaData.Protocol
- params["appName"] = urlMetaData.AppName
- params["contextPath"] = urlMetaData.ContextPath
- params["host"] = urlMetaData.Host
- params["port"] = urlMetaData.Port
- params["rpcType"] = urlMetaData.RPCType
- tokenRequest := initShenYuCommonRequest(headers, params, constants.REGISTER_URI, "")
+ namespaceIds := strings.Split(urlMetaData.NamespaceIds, ";")
- registerResult, err = http_client.DoUrlRegister(tokenRequest)
- if err == nil {
- return registerResult, nil
- } else {
- return false, err
+ for _, namespaceId := range namespaceIds {
+ if namespaceId == "" {
+ continue
+ }
+ params := map[string]string{}
+ params["protocol"] = urlMetaData.Protocol
+ params["appName"] = urlMetaData.AppName
+ params["contextPath"] = urlMetaData.ContextPath
+ params["host"] = urlMetaData.Host
+ params["port"] = urlMetaData.Port
+ params["rpcType"] = urlMetaData.RPCType
+ params["namespaceId"] = namespaceId
+
+ headers := adapterHeaders(adminTokenData)
+ tokenRequest := initShenYuCommonRequest(headers, params, constants.REGISTER_URI, "")
+
+ _, err = http_client.DoUrlRegister(tokenRequest)
+ if err != nil {
+ return false, err
+ }
}
+ return true, nil
}
/**
diff --git a/clients/nacos_client/nacos_client.go b/clients/nacos_client/nacos_client.go
index bfd949f..f4b62dd 100644
--- a/clients/nacos_client/nacos_client.go
+++ b/clients/nacos_client/nacos_client.go
@@ -42,7 +42,7 @@
type NacosClientParam struct {
IpAddr string //the nacos server address require user provide
Port uint64 //the nacos server port require user provide
- NamespaceId string // the namespaceId of Nacos.When namespace is public, fill in the blank string here require user provide.
+ NamespaceId string //the namespaceId of Nacos require user provide.
}
/**
diff --git a/clients/zk_client/zk_client.go b/clients/zk_client/zk_client.go
index 5eb3ce4..69a3c16 100644
--- a/clients/zk_client/zk_client.go
+++ b/clients/zk_client/zk_client.go
@@ -90,6 +90,12 @@
if err != nil {
return false, err
}
+ if len(childs) == 0 {
+ err := zc.ZkClient.Delete(path, stat.Version)
+ if err != nil {
+ return false, err
+ }
+ }
for _, child := range childs {
fullPath := path + "/" + child
err := zc.ZkClient.Delete(fullPath, stat.Version)
diff --git a/docker-compose-consul.yml b/docker-compose-consul.yml
index 1e1230a..d61f80e 100644
--- a/docker-compose-consul.yml
+++ b/docker-compose-consul.yml
@@ -17,7 +17,7 @@
services:
consul1:
- image: consul:latest
+ image: consul:1.15.4
container_name: consul1
restart: always
networks:
@@ -28,35 +28,43 @@
- ./data/consul/consul1/config:/consul/config
consul2:
- image: consul:latest
+ image: consul:1.15.4
container_name: consul2
restart: always
networks:
- shenyu
+ depends_on:
+ - consul1
command: agent -server -client=0.0.0.0 -bind 0.0.0.0 -retry-join=consul1 -node=consul2
volumes:
- ./data/consul/consul2/data:/consul/data
- ./data/consul/consul2/config:/consul/config
consul3:
- image: consul:latest
+ image: consul:1.15.4
container_name: consul3
restart: always
networks:
- shenyu
+ depends_on:
+ - consul1
command: agent -server -client=0.0.0.0 -bind 0.0.0.0 -retry-join=consul1 -node=consul3
volumes:
- ./data/consul/consul3/data:/consul/data
- ./data/consul/consul3/config:/consul/config
consul4:
- image: consul:latest
+ image: consul:1.15.4
container_name: consul4
restart: always
ports:
- 8500:8500
networks:
- shenyu
+ depends_on:
+ - consul1
+ - consul2
+ - consul3
command: agent -client=0.0.0.0 -bind 0.0.0.0 -retry-join=consul1 -ui -node=client1
volumes:
- ./data/consul/consul4/data:/consul/data
diff --git a/example/consul_client/consul_client.go b/example/consul_client/consul_client.go
index e6512a0..b705123 100644
--- a/example/consul_client/consul_client.go
+++ b/example/consul_client/consul_client.go
@@ -55,36 +55,39 @@
metaData1 := &model.ConsulMetaDataRegister{
ServiceId: uuid1,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "/your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "/your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData2 := &model.ConsulMetaDataRegister{
ServiceId: uuid2,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "/your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "/your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData3 := &model.ConsulMetaDataRegister{
ServiceId: uuid3,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "/your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "/your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
diff --git a/example/consul_client/consul_client_test.go b/example/consul_client/consul_client_test.go
index 15227e7..e9575e5 100644
--- a/example/consul_client/consul_client_test.go
+++ b/example/consul_client/consul_client_test.go
@@ -73,36 +73,39 @@
metaData1 := &model.ConsulMetaDataRegister{
ServiceId: uuid1,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "/your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "/your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData2 := &model.ConsulMetaDataRegister{
ServiceId: uuid2,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "/your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "/your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData3 := &model.ConsulMetaDataRegister{
ServiceId: uuid3,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "/your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "/your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
@@ -147,36 +150,39 @@
metaData1 := &model.ConsulMetaDataRegister{
ServiceId: uuid1,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "/your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "/your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData2 := &model.ConsulMetaDataRegister{
ServiceId: uuid2,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "/your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "/your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData3 := &model.ConsulMetaDataRegister{
ServiceId: uuid3,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "/your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "/your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
@@ -237,36 +243,39 @@
metaData1 := &model.ConsulMetaDataRegister{
ServiceId: uuid1,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "/your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "/your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData2 := &model.ConsulMetaDataRegister{
ServiceId: uuid2,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "/your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "/your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData3 := &model.ConsulMetaDataRegister{
ServiceId: uuid3,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "/your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "/your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
@@ -333,36 +342,39 @@
metaData1 := &model.ConsulMetaDataRegister{
ServiceId: uuid1,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testEntireMetaDataRegister1", //require user provide
- Path: "/your/entire/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testEntireMetaDataRegister1", //require user provide
+ Path: "/your/entire/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData2 := &model.ConsulMetaDataRegister{
ServiceId: uuid2,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testEntireMetaDataRegister2", //require user provide
- Path: "/your/entire/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testEntireMetaDataRegister2", //require user provide
+ Path: "/your/entire/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
metaData3 := &model.ConsulMetaDataRegister{
ServiceId: uuid3,
ShenYuMetaData: &model.MetaDataRegister{
- AppName: "testEntireMetaDataRegister3", //require user provide
- Path: "/your/entire/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
- RPCType: "http", //require user provide
+ AppName: "testEntireMetaDataRegister3", //require user provide
+ Path: "/your/entire/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ RPCType: "http", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
},
}
diff --git a/example/etcd_client/etcd_client.go b/example/etcd_client/etcd_client.go
index d640d55..3482d1d 100644
--- a/example/etcd_client/etcd_client.go
+++ b/example/etcd_client/etcd_client.go
@@ -44,19 +44,21 @@
//init MetaDataRegister
metaData1 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData2 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
//register multiple metaData
diff --git a/example/etcd_client/etcd_client_test.go b/example/etcd_client/etcd_client_test.go
index 07c595e..5735fc5 100644
--- a/example/etcd_client/etcd_client_test.go
+++ b/example/etcd_client/etcd_client_test.go
@@ -33,7 +33,7 @@
func TestInitEtcdClient(t *testing.T) {
ecp := &etcd_client.EtcdClientParam{
EtcdServers: []string{"http://127.0.0.1:2379"}, //require user provide
- TTL: 50,
+ TTL: 50,
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.ETCD_CLIENT)
@@ -52,7 +52,7 @@
func TestRegisterServiceInstanceAndGetServiceInstanceInfo(t *testing.T) {
ecp := &etcd_client.EtcdClientParam{
EtcdServers: []string{"http://127.0.0.1:2379"}, //require user provide
- TTL: 50,
+ TTL: 50,
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.ETCD_CLIENT)
@@ -67,22 +67,23 @@
//init MetaDataRegister
metaData1 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData2 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
-
//register multiple metaData
registerResult1, err := etcd.RegisterServiceInstance(metaData1)
assert.Nil(t, err)
@@ -92,7 +93,6 @@
assert.Nil(t, err)
assert.True(t, registerResult2)
-
time.Sleep(time.Second)
instanceDetail, err := etcd.GetServiceInstanceInfo(metaData1)
@@ -111,7 +111,7 @@
func TestDeRegisterServiceInstance(t *testing.T) {
ecp := &etcd_client.EtcdClientParam{
EtcdServers: []string{"http://127.0.0.1:2379"}, //require user provide
- TTL: 50,
+ TTL: 50,
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.ETCD_CLIENT)
@@ -126,22 +126,23 @@
//init MetaDataRegister
metaData1 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData2 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
-
//register multiple metaData
registerResult1, err := etcd.DeregisterServiceInstance(metaData1)
assert.Nil(t, err)
@@ -151,5 +152,3 @@
assert.Nil(t, err)
assert.True(t, registerResult2)
}
-
-
diff --git a/example/http_client/http_client.go b/example/http_client/http_client.go
index 696c786..c216caa 100644
--- a/example/http_client/http_client.go
+++ b/example/http_client/http_client.go
@@ -37,38 +37,40 @@
adminToken, err := clients.NewShenYuAdminClient(adminClient)
if err == nil {
- fmt.Printf("this is ShenYu Admin client token %v ->", adminToken.AdminTokenData.Token)
+ fmt.Printf("this is ShenYu Admin client token: %v\n", adminToken.AdminTokenData.Token)
}
//init MetaDataRegister
metaData := &model.MetaDataRegister{
- AppName: "testGoAppName", //require user provide
- Path: "/golang/your/path", //require user provide
- ContextPath: "/golang", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testGoAppName", //require user provide
+ Path: "/golang/your/path", //require user provide
+ ContextPath: "/golang", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
result, err := clients.RegisterMetaData(adminToken.AdminTokenData, metaData)
if err != nil {
- fmt.Printf("MetaDataRegister has error %v:", err)
+ fmt.Printf("MetaDataRegister has error: %v\n", err)
}
- fmt.Printf("finish register metadata ,the result is %v ->", result)
+ fmt.Printf("finish register metadata ,the result is: %v\n", result)
//init urlRegister
urlRegister := &model.URIRegister{
- Protocol: "http://", //require user provide
- AppName: "testGoAppName", //require user provide
- ContextPath: "/golang", //require user provide
- RPCType: constants.RPCTYPE_HTTP, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ Protocol: "http://", //require user provide
+ AppName: "testGoAppName", //require user provide
+ ContextPath: "/golang", //require user provide
+ RPCType: constants.RPCTYPE_HTTP, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
result, err = clients.UrlRegister(adminToken.AdminTokenData, urlRegister)
if err != nil {
- fmt.Printf("UrlRegister has error %v:", err)
+ fmt.Printf("UrlRegister has error: %v\n", err)
}
- fmt.Printf("finish UrlRegister ,the result is %v ->", result)
+ fmt.Printf("finish UrlRegister ,the result is: %v\n", result)
//do you logic
}
diff --git a/example/nacos_client/nacos_client.go b/example/nacos_client/nacos_client.go
index fd94179..a19e1be 100644
--- a/example/nacos_client/nacos_client.go
+++ b/example/nacos_client/nacos_client.go
@@ -39,7 +39,7 @@
ncp := &nacos_client.NacosClientParam{
IpAddr: "console.nacos.io",
Port: 80,
- NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+ NamespaceId: "public",
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
@@ -56,12 +56,13 @@
//RegisterServiceInstance start
//metaData is necessary param, this will be register to shenyu gateway to use
metaData := &model.URIRegister{
- Protocol: "testMetaDataRegister", //require user provide
- AppName: "testURLRegister", //require user provide
- ContextPath: "contextPath", //require user provide
- RPCType: constants.RPCTYPE_HTTP, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ Protocol: "testMetaDataRegister", //require user provide
+ AppName: "testURLRegister", //require user provide
+ ContextPath: "contextPath", //require user provide
+ RPCType: constants.RPCTYPE_HTTP, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaDataStringJson, _ := json.Marshal(metaData)
diff --git a/example/nacos_client/nacos_client_test.go b/example/nacos_client/nacos_client_test.go
index 8ac2c9a..6fb37ca 100644
--- a/example/nacos_client/nacos_client_test.go
+++ b/example/nacos_client/nacos_client_test.go
@@ -38,7 +38,7 @@
ncp := &nacos_client.NacosClientParam{
IpAddr: "console.nacos.io",
Port: 80,
- NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+ NamespaceId: "public",
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
@@ -57,7 +57,7 @@
ncp := &nacos_client.NacosClientParam{
IpAddr: "console.nacos.io",
Port: 80,
- NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+ NamespaceId: "public",
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
@@ -73,12 +73,13 @@
//metaData is necessary param, this will be register to shenyu gateway to use
metaData := &model.URIRegister{
- Protocol: "testMetaDataRegister", //require user provide
- AppName: "testURLRegister", //require user provide
- ContextPath: "contextPath", //require user provide
- RPCType: constants.RPCTYPE_HTTP, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ Protocol: "testMetaDataRegister", //require user provide
+ AppName: "testURLRegister", //require user provide
+ ContextPath: "contextPath", //require user provide
+ RPCType: constants.RPCTYPE_HTTP, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaDataStringJson, _ := json.Marshal(metaData)
@@ -107,7 +108,7 @@
ncp := &nacos_client.NacosClientParam{
IpAddr: "console.nacos.io",
Port: 80,
- NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+ NamespaceId: "public",
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
@@ -123,12 +124,13 @@
//metaData is necessary param, this will be register to shenyu gateway to use
metaData := &model.URIRegister{
- Protocol: "testMetaDataRegister", //require user provide
- AppName: "testURLRegister", //require user provide
- ContextPath: "contextPath", //require user provide
- RPCType: constants.RPCTYPE_HTTP, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ Protocol: "testMetaDataRegister", //require user provide
+ AppName: "testURLRegister", //require user provide
+ ContextPath: "contextPath", //require user provide
+ RPCType: constants.RPCTYPE_HTTP, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaDataStringJson, _ := json.Marshal(metaData)
@@ -171,7 +173,7 @@
ncp := &nacos_client.NacosClientParam{
IpAddr: "console.nacos.io",
Port: 80,
- NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+ NamespaceId: "public",
}
sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
@@ -187,12 +189,13 @@
//metaData is necessary param, this will be register to shenyu gateway to use
metaData := &model.URIRegister{
- Protocol: "testMetaDataRegister", //require user provide
- AppName: "testURLRegister", //require user provide
- ContextPath: "contextPath", //require user provide
- RPCType: constants.RPCTYPE_HTTP, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ Protocol: "testMetaDataRegister", //require user provide
+ AppName: "testURLRegister", //require user provide
+ ContextPath: "contextPath", //require user provide
+ RPCType: constants.RPCTYPE_HTTP, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaDataStringJson, _ := json.Marshal(metaData)
diff --git a/example/zk_client/zk_client.go b/example/zk_client/zk_client.go
index 513125b..36673fe 100644
--- a/example/zk_client/zk_client.go
+++ b/example/zk_client/zk_client.go
@@ -49,27 +49,30 @@
//RegisterServiceInstance start
//init MetaDataRegister
metaData1 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData2 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData3 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
//register multiple metaData
diff --git a/example/zk_client/zk_client_test.go b/example/zk_client/zk_client_test.go
index 4dbcfb9..477e06f 100644
--- a/example/zk_client/zk_client_test.go
+++ b/example/zk_client/zk_client_test.go
@@ -67,27 +67,30 @@
//init MetaDataRegister
metaData1 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData2 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData3 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
//register multiple metaData
@@ -139,27 +142,30 @@
//init MetaDataRegister
metaData1 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister1", //require user provide
- Path: "your/path1", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8080", //require user provide
+ AppName: "testMetaDataRegister1", //require user provide
+ Path: "your/path1", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8080", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData2 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister2", //require user provide
- Path: "your/path2", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8181", //require user provide
+ AppName: "testMetaDataRegister2", //require user provide
+ Path: "your/path2", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8181", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
metaData3 := &model.MetaDataRegister{
- AppName: "testMetaDataRegister3", //require user provide
- Path: "your/path3", //require user provide
- Enabled: true, //require user provide
- Host: "127.0.0.1", //require user provide
- Port: "8282", //require user provide
+ AppName: "testMetaDataRegister3", //require user provide
+ Path: "your/path3", //require user provide
+ Enabled: true, //require user provide
+ Host: "127.0.0.1", //require user provide
+ Port: "8282", //require user provide
+ NamespaceIds: "649330b6-c2d7-4edc-be8e-8a54df9eb385", //require user provide
}
deRegisterResult1, err := zc.DeregisterServiceInstance(metaData1)
diff --git a/model/common_meta_data_register.go b/model/common_meta_data_register.go
index 8721e7d..78f0ce1 100644
--- a/model/common_meta_data_register.go
+++ b/model/common_meta_data_register.go
@@ -32,4 +32,5 @@
PluginNames []interface{} `json:"pluginNames"`
RegisterMetaData bool `json:"registerMetaData"`
TimeMillis int64 `json:"timeMillis"`
+ NamespaceIds string `json:"namespaceIds"` // Support multiple ns, split by ";"
}
diff --git a/model/http_url_register.go b/model/http_url_register.go
index 712fe95..fe32926 100644
--- a/model/http_url_register.go
+++ b/model/http_url_register.go
@@ -21,10 +21,11 @@
* The ShenYu Http URIRegister
**/
type URIRegister struct {
- Protocol string `json:"protocol"`
- AppName string `json:"appName"`
- ContextPath string `json:"contextPath"`
- RPCType string `json:"rpcType"`
- Host string `json:"host"`
- Port string `json:"port"`
+ Protocol string `json:"protocol"`
+ AppName string `json:"appName"`
+ ContextPath string `json:"contextPath"`
+ RPCType string `json:"rpcType"`
+ Host string `json:"host"`
+ Port string `json:"port"`
+ NamespaceIds string `json:"namespaceIds"` // Support multiple ns, split by ";"
}