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 {

Reply via email to