This is an automated email from the ASF dual-hosted git repository.
wuxinfan pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/develop by this push:
new 395a3b8e4 refactor: switch to global protocol config (#2893)
395a3b8e4 is described below
commit 395a3b8e458cf0dde572eaf4f011fe9089600d15
Author: marsevilspirit <[email protected]>
AuthorDate: Mon May 26 20:39:59 2025 +0800
refactor: switch to global protocol config (#2893)
* switch to global protocol config
* delete constant.DefaultPortString
* add comment
---
common/extension/protocol.go | 2 +-
global/protocol_config.go | 18 +++++++++++++++---
protocol/options.go | 3 ++-
server/action.go | 8 ++++----
server/compat.go | 29 -----------------------------
server/options.go | 11 -----------
6 files changed, 22 insertions(+), 49 deletions(-)
diff --git a/common/extension/protocol.go b/common/extension/protocol.go
index 0b59f1441..e5b3cc966 100644
--- a/common/extension/protocol.go
+++ b/common/extension/protocol.go
@@ -31,7 +31,7 @@ func SetProtocol(name string, v func() protocol.Protocol) {
// GetProtocol finds the protocol extension with @name
func GetProtocol(name string) protocol.Protocol {
if protocols[name] == nil {
- panic("protocol for " + name + " is not existing, make sure you
have import the package.")
+ panic("protocol for [" + name + "] is not existing, make sure
you have import the package.")
}
return protocols[name]()
}
diff --git a/global/protocol_config.go b/global/protocol_config.go
index 610b9c966..a70b6d38f 100644
--- a/global/protocol_config.go
+++ b/global/protocol_config.go
@@ -17,11 +17,19 @@
package global
+import (
+ "strconv"
+)
+
+import (
+ "dubbo.apache.org/dubbo-go/v3/common/constant"
+)
+
// ProtocolConfig is protocol configuration
type ProtocolConfig struct {
- Name string `default:"dubbo" validate:"required" yaml:"name"
json:"name,omitempty" property:"name"`
+ Name string `yaml:"name" json:"name,omitempty" property:"name"`
Ip string `yaml:"ip" json:"ip,omitempty" property:"ip"`
- Port string `default:"20000" yaml:"port" json:"port,omitempty"
property:"port"`
+ Port string `yaml:"port" json:"port,omitempty" property:"port"`
Params any `yaml:"params" json:"params,omitempty" property:"params"`
// MaxServerSendMsgSize max size of server send message,
1mb=1000kb=1000000b 1mib=1024kb=1048576b.
@@ -31,8 +39,12 @@ type ProtocolConfig struct {
MaxServerRecvMsgSize string `default:"4mib"
yaml:"max-server-recv-msg-size" json:"max-server-recv-msg-size,omitempty"`
}
+// DefaultProtocolConfig returns a default ProtocolConfig instance.
func DefaultProtocolConfig() *ProtocolConfig {
- return &ProtocolConfig{}
+ return &ProtocolConfig{
+ Name: constant.TriProtocol,
+ Port: strconv.Itoa(constant.DefaultPort),
+ }
}
// Clone a new ProtocolConfig
diff --git a/protocol/options.go b/protocol/options.go
index 52ff65fb8..2f9951b36 100644
--- a/protocol/options.go
+++ b/protocol/options.go
@@ -22,6 +22,7 @@ import (
)
import (
+ "dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/global"
)
@@ -44,7 +45,7 @@ func NewOptions(opts ...Option) *Options {
if defOpts.ID == "" {
if defOpts.Protocol.Name == "" {
// should be the same as default value of
config.ProtocolConfig.Protocol
- defOpts.ID = "tri"
+ defOpts.ID = constant.TriProtocol
} else {
defOpts.ID = defOpts.Protocol.Name
}
diff --git a/server/action.go b/server/action.go
index 72e64c947..423207cdc 100644
--- a/server/action.go
+++ b/server/action.go
@@ -107,7 +107,7 @@ func (svcOpts *ServiceOptions) IsExport() bool {
}
// Get Random Port
-func getRandomPort(protocolConfigs []*config.ProtocolConfig) *list.List {
+func getRandomPort(protocolConfigs []*global.ProtocolConfig) *list.List {
ports := list.New()
for _, proto := range protocolConfigs {
if len(proto.Port) > 0 {
@@ -161,7 +161,7 @@ func (svcOpts *ServiceOptions) export(info
*common.ServiceInfo) error {
}
urlMap := svcOpts.getUrlMap()
- protocolConfigs := loadProtocol(svc.ProtocolIDs,
svcOpts.protocolsCompat)
+ protocolConfigs := loadProtocol(svc.ProtocolIDs, svcOpts.Protocols)
if len(protocolConfigs) == 0 {
logger.Warnf("The service %v'svcOpts '%v' protocols don't has
right protocolConfigs, Please check your configuration center and transfer
protocol ", svc.Interface, svc.ProtocolIDs)
return nil
@@ -281,8 +281,8 @@ func setRegistrySubURL(ivkURL *common.URL, regUrl
*common.URL) {
}
// loadProtocol filter protocols by ids
-func loadProtocol(protocolIds []string, protocols
map[string]*config.ProtocolConfig) []*config.ProtocolConfig {
- returnProtocols := make([]*config.ProtocolConfig, 0, len(protocols))
+func loadProtocol(protocolIds []string, protocols
map[string]*global.ProtocolConfig) []*global.ProtocolConfig {
+ returnProtocols := make([]*global.ProtocolConfig, 0, len(protocols))
for _, v := range protocolIds {
for k, config := range protocols {
if v == k {
diff --git a/server/compat.go b/server/compat.go
index fcf4ad00c..584aa1443 100644
--- a/server/compat.go
+++ b/server/compat.go
@@ -61,32 +61,3 @@ func compatRegistryConfig(c *global.RegistryConfig)
*config.RegistryConfig {
UseAsConfigCenter: c.UseAsConfigCenter,
}
}
-
-func compatMethodConfig(c *global.MethodConfig) *config.MethodConfig {
- return &config.MethodConfig{
- InterfaceId: c.InterfaceId,
- InterfaceName: c.InterfaceName,
- Name: c.Name,
- Retries: c.Retries,
- LoadBalance: c.LoadBalance,
- Weight: c.Weight,
- TpsLimitInterval: c.TpsLimitInterval,
- TpsLimitRate: c.TpsLimitRate,
- TpsLimitStrategy: c.TpsLimitStrategy,
- ExecuteLimit: c.ExecuteLimit,
- ExecuteLimitRejectedHandler: c.ExecuteLimitRejectedHandler,
- Sticky: c.Sticky,
- RequestTimeout: c.RequestTimeout,
- }
-}
-
-func compatProtocolConfig(c *global.ProtocolConfig) *config.ProtocolConfig {
- return &config.ProtocolConfig{
- Name: c.Name,
- Ip: c.Ip,
- Port: c.Port,
- Params: c.Params,
- MaxServerSendMsgSize: c.MaxServerSendMsgSize,
- MaxServerRecvMsgSize: c.MaxServerRecvMsgSize,
- }
-}
diff --git a/server/options.go b/server/options.go
index bd7e8bd55..36cb02b35 100644
--- a/server/options.go
+++ b/server/options.go
@@ -475,10 +475,8 @@ type ServiceOptions struct {
// TODO: remove this when config package is remove
IDLMode string
- methodsCompat []*config.MethodConfig
applicationCompat *config.ApplicationConfig
registriesCompat map[string]*config.RegistryConfig
- protocolsCompat map[string]*config.ProtocolConfig
}
func defaultServiceOptions() *ServiceOptions {
@@ -543,15 +541,6 @@ func (svcOpts *ServiceOptions) init(srv *Server, opts
...ServiceOption) error {
if len(svc.RCProtocolsMap) == 0 {
svc.RCProtocolsMap = svcOpts.Protocols
}
- if len(svc.RCProtocolsMap) > 0 {
- svcOpts.protocolsCompat =
make(map[string]*config.ProtocolConfig)
- for key, pro := range svc.RCProtocolsMap {
- svcOpts.protocolsCompat[key] = compatProtocolConfig(pro)
- if err := svcOpts.protocolsCompat[key].Init(); err !=
nil {
- return err
- }
- }
- }
svc.RegistryIDs = commonCfg.TranslateIds(svc.RegistryIDs)
if len(svc.RegistryIDs) <= 0 {