From dc8819a9eb4614ba141f3690a7c8375d897793c0 Mon Sep 17 00:00:00 2001 From: "vito.he" <hxmhlt@163.com> Date: Thu, 12 Sep 2019 14:47:12 +0800 Subject: [PATCH] Add:reference & service protocol default --- config/provider_config_test.go | 16 +++- config/reference_config.go | 2 +- config/service_config.go | 2 +- .../consumer_config_withoutProtocol.yml | 77 +++++++++++++++++++ .../provider_config_withoutProtocol.yml | 76 ++++++++++++++++++ 5 files changed, 170 insertions(+), 3 deletions(-) create mode 100644 config/testdata/consumer_config_withoutProtocol.yml create mode 100644 config/testdata/provider_config_withoutProtocol.yml diff --git a/config/provider_config_test.go b/config/provider_config_test.go index e3db22217..db4b5f990 100644 --- a/config/provider_config_test.go +++ b/config/provider_config_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestProviderInit(t *testing.T) { +func TestConsumerInit(t *testing.T) { conPath, err := filepath.Abs("./testdata/consumer_config_with_configcenter.yml") assert.NoError(t, err) assert.NoError(t, ConsumerInit(conPath)) @@ -17,3 +17,17 @@ func TestProviderInit(t *testing.T) { assert.Equal(t, "dubbo.properties", consumerConfig.ConfigCenterConfig.ConfigFile) assert.Equal(t, "100ms", consumerConfig.Connect_Timeout) } + +func TestConsumerInitWithDefaultProtocol(t *testing.T) { + conPath, err := filepath.Abs("./testdata/consumer_config_withoutProtocol.yml") + assert.NoError(t, err) + assert.NoError(t, ConsumerInit(conPath)) + assert.Equal(t, "dubbo", consumerConfig.References["UserProvider"].Protocol) +} + +func TestProviderInitWithDefaultProtocol(t *testing.T) { + conPath, err := filepath.Abs("./testdata/provider_config_withoutProtocol.yml") + assert.NoError(t, err) + assert.NoError(t, ProviderInit(conPath)) + assert.Equal(t, "dubbo", providerConfig.Services["UserProvider"].Protocol) +} diff --git a/config/reference_config.go b/config/reference_config.go index 4b063bc60..fb854a14d 100644 --- a/config/reference_config.go +++ b/config/reference_config.go @@ -47,7 +47,7 @@ type ReferenceConfig struct { Check *bool `yaml:"check" json:"check,omitempty" property:"check"` Url string `yaml:"url" json:"url,omitempty" property:"url"` Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"` - Protocol string `yaml:"protocol" json:"protocol,omitempty" property:"protocol"` + Protocol string `default:"dubbo" yaml:"protocol" json:"protocol,omitempty" property:"protocol"` Registry string `yaml:"registry" json:"registry,omitempty" property:"registry"` Cluster string `yaml:"cluster" json:"cluster,omitempty" property:"cluster"` Loadbalance string `yaml:"loadbalance" json:"loadbalance,omitempty" property:"loadbalance"` diff --git a/config/service_config.go b/config/service_config.go index 85af4d048..c41509917 100644 --- a/config/service_config.go +++ b/config/service_config.go @@ -46,7 +46,7 @@ type ServiceConfig struct { context context.Context id string Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"` - Protocol string `required:"true" yaml:"protocol" json:"protocol,omitempty" property:"protocol"` //multi protocol support, split by ',' + Protocol string `default:"dubbo" required:"true" yaml:"protocol" json:"protocol,omitempty" property:"protocol"` //multi protocol support, split by ',' InterfaceName string `required:"true" yaml:"interface" json:"interface,omitempty" property:"interface"` Registry string `yaml:"registry" json:"registry,omitempty" property:"registry"` Cluster string `default:"failover" yaml:"cluster" json:"cluster,omitempty" property:"cluster"` diff --git a/config/testdata/consumer_config_withoutProtocol.yml b/config/testdata/consumer_config_withoutProtocol.yml new file mode 100644 index 000000000..a051afbf1 --- /dev/null +++ b/config/testdata/consumer_config_withoutProtocol.yml @@ -0,0 +1,77 @@ +# dubbo client yaml configure file + +filter: "" + +# client +request_timeout : "100ms" +# connect timeout +connect_timeout : "100ms" +check: true +# application config +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info client" + version : "0.0.1" + owner : "ZX" + environment : "dev" + +registries : + + "hangzhouzk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + "shanghaizk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2182" + username: "" + password: "" + +references: + "UserProvider": + registry: "hangzhouzk,shanghaizk" + filter: "" + version: "1.0" + group: "as" + interface : "com.ikurento.user.UserProvider" + url: "dubbo://127.0.0.1:20000/UserProvider" + cluster: "failover" + methods : + - name: "GetUser" + retries: 3 + params: + "serviceid": + "soa.com.ikurento.user.UserProvider" + "forks": 5 + +protocol_conf: + dubbo: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + pool_size: 64 + pool_ttl: 600 + # gr_pool_size is recommended to be set to [cpu core number] * 100 + gr_pool_size: 1200 + # queue_len is recommended to be set to 64 or 128 + queue_len: 64 + # queue_number is recommended to be set to gr_pool_size / 20 + queue_number: 60 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 1024 + session_name: "client" diff --git a/config/testdata/provider_config_withoutProtocol.yml b/config/testdata/provider_config_withoutProtocol.yml new file mode 100644 index 000000000..07349f826 --- /dev/null +++ b/config/testdata/provider_config_withoutProtocol.yml @@ -0,0 +1,76 @@ +# dubbo server yaml configure file + +filter: "" +# application config +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info server" + version : "0.0.1" + owner : "ZX" + environment : "dev" + +registries : + "hangzhouzk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + "shanghaizk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2182" + username: "" + password: "" + + +services: + "UserProvider": + registry: "hangzhouzk,shanghaizk" + filter: "" + # equivalent to interface of dubbo.xml + interface : "com.ikurento.user.UserProvider" + loadbalance: "random" + version: "1.0" + group: "as" + warmup: "100" + cluster: "failover" + methods: + - name: "GetUser" + retries: 1 + loadbalance: "random" + +protocols: + "dubbo": + name: "dubbo" + # while using dubbo protocol, ip cannot is 127.0.0.1, because client of java-dubbo will get 'connection refuse' + ip : "127.0.0.1" + port : 20000 + #- name: "jsonrpc" + # ip: "127.0.0.1" + # port: 20001 + +protocol_conf: + dubbo: + session_number: 700 + session_timeout: "20s" + # gr_pool_size is recommended to be set to [cpu core number] * 10 + gr_pool_size: 120 + # queue_len is recommended to be set to 64 or 128 + queue_len: 64 + # queue_number is recommended to be set to gr_pool_size / 20 + queue_number: 6 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 1024 + session_name: "server" -- GitLab