diff --git a/protocol/dubbo/readwriter.go b/protocol/dubbo/readwriter.go
index 6d789ae13e458249747f660c406ab2fe4c6463f0..529aa759a5c39a467a1f72560d56c1b48738a9a6 100644
--- a/protocol/dubbo/readwriter.go
+++ b/protocol/dubbo/readwriter.go
@@ -24,7 +24,7 @@ import (
 
 import (
 	"github.com/dubbogo/getty"
-	"github.com/dubbogo/hessian2"
+	hessian "github.com/dubbogo/hessian2"
 	perrors "github.com/pkg/errors"
 )
 import (
@@ -89,12 +89,11 @@ func (p *RpcClientPackageHandler) Write(ss getty.Session, pkg interface{}) error
 // RpcServerPackageHandler
 ////////////////////////////////////////////
 
-type RpcServerPackageHandler struct {
-}
+var (
+	rpcServerPkgHandler = &RpcServerPackageHandler{}
+)
 
-func NewRpcServerPackageHandler() *RpcServerPackageHandler {
-	return &RpcServerPackageHandler{}
-}
+type RpcServerPackageHandler struct{}
 
 func (p *RpcServerPackageHandler) Read(ss getty.Session, data []byte) (interface{}, int, error) {
 	pkg := &DubboPackage{
diff --git a/protocol/dubbo/server.go b/protocol/dubbo/server.go
index 80568c61bb44b540df0d0689273f22d206411ca4..8bed30f7465bbe22e8c61b5ca887da1c668a3ba9 100644
--- a/protocol/dubbo/server.go
+++ b/protocol/dubbo/server.go
@@ -79,6 +79,8 @@ type Server struct {
 	conf      ServerConfig
 	tcpServer getty.Server
 	exporter  protocol.Exporter
+
+	rpcHandler *RpcServerHandler
 }
 
 func NewServer(exporter protocol.Exporter) *Server {
@@ -88,6 +90,8 @@ func NewServer(exporter protocol.Exporter) *Server {
 		conf:     *srvConf,
 	}
 
+	s.rpcHandler = NewRpcServerHandler(s.exporter, s.conf.SessionNumber, s.conf.sessionTimeout)
+
 	return s
 }
 
@@ -116,8 +120,8 @@ func (s *Server) newSession(session getty.Session) error {
 
 	session.SetName(conf.GettySessionParam.SessionName)
 	session.SetMaxMsgLen(conf.GettySessionParam.MaxMsgLen)
-	session.SetPkgHandler(NewRpcServerPackageHandler())
-	session.SetEventListener(NewRpcServerHandler(s.exporter, conf.SessionNumber, conf.sessionTimeout))
+	session.SetPkgHandler(rpcServerPkgHandler)
+	session.SetEventListener(s.rpcHandler)
 	session.SetRQLen(conf.GettySessionParam.PkgRQSize)
 	session.SetWQLen(conf.GettySessionParam.PkgWQSize)
 	session.SetReadTimeout(conf.GettySessionParam.tcpReadTimeout)