From a4f790badaede20fa4f96ae74ebddcb0edabfc36 Mon Sep 17 00:00:00 2001 From: randy Date: Mon, 12 Jul 2021 08:56:19 +0800 Subject: [PATCH] update samples/admin (#208) * delete old samples/admin * recovery Co-authored-by: zhangxun <18721825717@163.com> --- pkg/config/api_config.go | 1 + samples/admin/admin/admin_config.yaml | 23 --- samples/admin/proxy/api_config.yaml | 180 ------------------ samples/admin/proxy/conf.yaml | 85 --------- samples/admin/sample.md | 59 +----- samples/admin/server/app/server.go | 76 -------- samples/admin/server/app/user.go | 243 ------------------------- samples/admin/server/app/version.go | 21 --- samples/admin/server/config/log.yml | 45 ----- samples/admin/server/config/server.yml | 74 -------- 10 files changed, 2 insertions(+), 805 deletions(-) delete mode 100644 samples/admin/admin/admin_config.yaml delete mode 100644 samples/admin/proxy/api_config.yaml delete mode 100644 samples/admin/proxy/conf.yaml delete mode 100644 samples/admin/server/app/server.go delete mode 100644 samples/admin/server/app/user.go delete mode 100644 samples/admin/server/app/version.go delete mode 100644 samples/admin/server/config/log.yml delete mode 100644 samples/admin/server/config/server.yml diff --git a/pkg/config/api_config.go b/pkg/config/api_config.go index e369bf2a5..855edc46d 100644 --- a/pkg/config/api_config.go +++ b/pkg/config/api_config.go @@ -427,6 +427,7 @@ func handlePutEvent(key, val []byte) { return } mergeApiConfigMethod(res.ResourcePath, *res) + return } //handle base info diff --git a/samples/admin/admin/admin_config.yaml b/samples/admin/admin/admin_config.yaml deleted file mode 100644 index a7a534802..000000000 --- a/samples/admin/admin/admin_config.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -server: - address: 127.0.0.1:8080 -etcd: - address: 127.0.0.1:2379 - path: /pixiu/config/api \ No newline at end of file diff --git a/samples/admin/proxy/api_config.yaml b/samples/admin/proxy/api_config.yaml deleted file mode 100644 index d6386c94f..000000000 --- a/samples/admin/proxy/api_config.yaml +++ /dev/null @@ -1,180 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -name: pixiu -description: pixiu sample -resources: - - path: '/api/v1/test-dubbo/:application/:interface' - type: restful - description: common - methods: - - httpVerb: POST - onAir: true - timeout: 100s - inboundRequest: - requestType: http - queryStrings: - - name: method - required: true - - name: group - required: false - - name: version - required: false - integrationRequest: - requestType: dubbo - paramTypes: [ "string", "string", "string", "string", "string", "string", "string" ] - mappingParams: - - name: requestBody.values - mapTo: opt.values - - name: requestBody.types - mapTo: opt.types - - name: uri.application - mapTo: opt.application - - name: uri.interface - mapTo: opt.interface - - name: queryStrings.method - mapTo: opt.method - - name: queryStrings.group - mapTo: opt.group - - name: queryStrings.version - mapTo: opt.version - clusterName: "test_dubbo" - - path: '/api/v1/test-dubbo/user' - type: restful - description: user - filters: - - filter0 - methods: - - httpVerb: GET - onAir: true - timeout: 1000ms - inboundRequest: - requestType: http - queryStrings: - - name: name - required: true - integrationRequest: - requestType: dubbo - mappingParams: - - name: queryStrings.name - mapTo: 0 - mapType: "java.lang.String" - applicationName: "UserProvider" - interface: "com.ic.user.UserProvider" - method: "GetUserByName" - group: "test" - version: 1.0.0 - clusterName: "test_dubbo" - - httpVerb: POST - onAir: true - timeout: 10s - inboundRequest: - requestType: http - integrationRequest: - requestType: dubbo - mappingParams: - - name: requestBody._all - mapTo: 0 - mapType: "object" - applicationName: "UserProvider" - interface: "com.ic.user.UserProvider" - method: "CreateUser" - group: "test" - version: 1.0.0 - clusterName: "test_dubbo" - - path: '/api/v1/test-dubbo/timeout-user' - type: restful - description: user - filters: - - filter0 - methods: - - httpVerb: GET - onAir: true - timeout: 1s - inboundRequest: - requestType: http - queryStrings: - - name: name - type: string - required: true - integrationRequest: - requestType: dubbo - mappingParams: - - name: queryStrings.name - mapTo: 1 - mapType: "string" - applicationName: "UserProvider" - interface: "com.ic.user.UserProvider" - method: "GetUserTimeout" - group: "test" - version: 1.0.0 - clusterName: "test_dubbo" - - path: '/api/v1/test-dubbo/user-add' - type: restful - description: user - methods: - - httpVerb: POST - onAir: true - timeout: 10s - inboundRequest: - requestType: http - integrationRequest: - requestType: dubbo - mappingParams: - - name: requestBody.name - mapTo: 0 - mapType: "string" - - name: requestBody.id - mapTo: 1 - mapType: "string" - - name: requestBody.age - mapTo: 2 - mapType: "int" - applicationName: "UserProvider" - interface: "com.ic.user.UserProvider" - method: "CreateUser" - group: "test" - version: 1.0.0 - clusterName: "test_dubbo" - - path: '/api/v1/test-dubbo/mock' - type: restful - description: mock - methods: - - httpVerb: GET - onAir: true - mock: true - timeout: 100s - inboundRequest: - requestType: http -definitions: - - name: userCreate - schema: >- - { - "type" : "object", - "properties" : { - "id" : { - "type" : "integer" - }, - "name" : { - "type" : "string" - }, - "age" : { - "type" : "integer" - } - } - } diff --git a/samples/admin/proxy/conf.yaml b/samples/admin/proxy/conf.yaml deleted file mode 100644 index 2f6736a4d..000000000 --- a/samples/admin/proxy/conf.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---- -static_resources: - listeners: - - name: "net/http" - address: - socket_address: - protocol_type: "HTTP" - address: "0.0.0.0" - port: 8888 - # not used now. - # filter_chains: - # - filter_chain_match: - # domains: - # - api.dubbo.com - # - api.pixiu.com - # filters: - # - name: dgp.filters.http_connect_manager - # config: - # route_config: - # routes: - # - match: - # prefix: "/api/v1" - # headers: - # - name: "X-DGP-WAY" - # value: "dubbo" - # route: - # cluster: "test_dubbo" - # cluster_not_found_response_code: 505 - # cors: - # allow_origin: - # - "*" - # enabled: true - # http_filters: - # - name: dgp.filters.http.api - # config: - # - name: dgp.filters.http.router - # config: - # - name: dgp.filters.http_transfer_dubbo - # config: - # server_name: "test_http_dubbo" - # generate_request_id: false - config: - idle_timeout: 5s - read_timeout: 5s - write_timeout: 5s - clusters: - - name: "test_dubbo" - lb_policy: "RoundRobin" - registries: - "zookeeper": - timeout: "3s" - address: "127.0.0.1:2181" - username: "" - password: "" - # "consul": - # timeout: "3s" - # address: "127.0.0.1:8500" - timeout_config: - connect_timeout: "5s" - request_timeout: "10s" - shutdown_config: - timeout: "60s" - step_timeout: "10s" - reject_policy: "immediacy" - api_meta_config: - address: "127.0.0.1:2379" - api_config_path: "/pixiu/config/api" diff --git a/samples/admin/sample.md b/samples/admin/sample.md index efa39a0d6..e77d591e5 100644 --- a/samples/admin/sample.md +++ b/samples/admin/sample.md @@ -1,58 +1 @@ -# Local example - -## prepare etcd config - -run etcd local or in docker, then use etcdctl to set api config - -- export ETCDCTL_API=3 -- if use docker, run `docker cp api_config.yaml mycontainer:/path` to copy file to docker -- run `cat api_config.yaml | etcdctl put "/proxy/config/api"` to set api config - - -## Start provider: - -config env: -- CONF_PROVIDER_FILE_PATH=/XXX/dubbo-go-proxy/samples/admin/server/config/server.yml -- APP_LOG_CONF_FILE=/XXX/dubbo-go-proxy/samples/admin/server/config/log.yml - -run samples/admin/server/app/server.go - -## Start proxy - -config program arguments: -- -c /XXX/dubbo-go-proxy/samples/admin/proxy/conf.yaml -- -a /XXX/dubbo-go-proxy/samples/admin/proxy/api_config.yaml - -to replace -a program arguments, should put api_meta_config in conf.yaml - -```yaml - api_meta_config: - address: "127.0.0.1:2379" - api_config_path: "/pixiu/config/api" -``` - - -run cmd/proxy/proxy.go - -## - -curl "http://127.0.0.1:8888/api/v1/test-dubbo/user?name=tc" , the result: - -```json -{ - "age": 18, - "id": "0001", - "name": "tc" -} -``` - -## Start admin - -clone from https://github.com/dubbogo/pixiu-admin - -cd pixiu-admin - -run cmd/admin/admin.go - -config program arguments: -- -c /xx/pixiu-admin/configs/admin_config.yaml \ No newline at end of file +please refer to https://www.yuque.com/docs/share/6e9de027-0548-45a1-a64c-d97529f5f5cc?# 《Pixiu Admin 》 \ No newline at end of file diff --git a/samples/admin/server/app/server.go b/samples/admin/server/app/server.go deleted file mode 100644 index 540959877..000000000 --- a/samples/admin/server/app/server.go +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package main - -import ( - "fmt" - "os" - "os/signal" - "syscall" - "time" -) - -import ( - hessian "github.com/apache/dubbo-go-hessian2" - "github.com/apache/dubbo-go/common/logger" - "github.com/apache/dubbo-go/config" - _ "github.com/apache/dubbo-go/protocol/dubbo" - _ "github.com/apache/dubbo-go/registry/protocol" - - _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" - _ "github.com/apache/dubbo-go/filter/filter_impl" - - _ "github.com/apache/dubbo-go/cluster/cluster_impl" - _ "github.com/apache/dubbo-go/cluster/loadbalance" - _ "github.com/apache/dubbo-go/registry/zookeeper" -) - -var survivalTimeout = int(3e9) - -// they are necessary: -// export CONF_PROVIDER_FILE_PATH="xxx" -// export APP_LOG_CONF_FILE="xxx" -func main() { - hessian.RegisterPOJO(&User{}) - config.Load() - - initSignal() -} - -func initSignal() { - signals := make(chan os.Signal, 1) - // It is not possible to block SIGKILL or syscall.SIGSTOP - signal.Notify(signals, os.Interrupt, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) - for { - sig := <-signals - logger.Infof("get signal %s", sig.String()) - switch sig { - case syscall.SIGHUP: - // reload() - default: - time.AfterFunc(time.Duration(survivalTimeout), func() { - logger.Warnf("app exit now by force...") - os.Exit(1) - }) - - // The program exits normally or timeout forcibly exits. - fmt.Println("provider app exit now...") - return - } - } -} diff --git a/samples/admin/server/app/user.go b/samples/admin/server/app/user.go deleted file mode 100644 index fff0e2602..000000000 --- a/samples/admin/server/app/user.go +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package main - -import ( - "context" - "errors" - "fmt" - "sync" - "time" -) - -import ( - hessian "github.com/apache/dubbo-go-hessian2" - "github.com/apache/dubbo-go/config" -) - -func init() { - config.SetProviderService(new(UserProvider)) - // ------for hessian2------ - hessian.RegisterPOJO(&User{}) - - cache = &UserDB{ - cacheMap: make(map[string]*User, 16), - cacheMapC: make(map[int64]*User, 16), - lock: sync.Mutex{}, - } - - cache.Add(&User{ID: "0001", Code: 1, Name: "tc", Age: 18, Time: time.Now()}) - cache.Add(&User{ID: "0002", Code: 2, Name: "ic", Age: 88, Time: time.Now()}) -} - -var cache *UserDB - -// UserDB cache user. -type UserDB struct { - // key is name, value is user obj - cacheMap map[string]*User - cacheMapC map[int64]*User - lock sync.Mutex -} - -// Add add user -func (db *UserDB) Add(u *User) bool { - res := db.AddForName(u) - if !res { - return false - } - - return db.AddForCode(u) -} - -// AddForName add user with name -func (db *UserDB) AddForName(u *User) bool { - db.lock.Lock() - defer db.lock.Unlock() - - if len(u.Name) == 0 { - return false - } - - if _, ok := db.cacheMap[u.Name]; ok { - return false - } - - db.cacheMap[u.Name] = u - return true -} - -// AddForCode add user with code -func (db *UserDB) AddForCode(u *User) bool { - db.lock.Lock() - defer db.lock.Unlock() - - if u.Code == 0 { - return false - } - - if _, ok := db.cacheMapC[u.Code]; ok { - return false - } - - db.cacheMapC[u.Code] = u - return true -} - -// GetByName find user by name -func (db *UserDB) GetByName(n string) (*User, bool) { - db.lock.Lock() - defer db.lock.Unlock() - - r, ok := db.cacheMap[n] - return r, ok -} - -// GetByCode find user by code -func (db *UserDB) GetByCode(n int64) (*User, bool) { - db.lock.Lock() - defer db.lock.Unlock() - - r, ok := db.cacheMapC[n] - return r, ok -} - -// User user obj. -type User struct { - ID string `json:"id,omitempty"` - Code int64 `json:"code,omitempty"` - Name string `json:"name,omitempty"` - Age int32 `json:"age,omitempty"` - Time time.Time `json:"time,omitempty"` -} - -// UserProvider the dubbo provider. -// like: version: 1.0.0 group: test -type UserProvider struct{} - -// CreateUser new user, PX config POST. -func (u *UserProvider) CreateUser(ctx context.Context, user *User) (*User, error) { - println("Req CreateUser data:%#v", user) - if user == nil { - return nil, errors.New("not found") - } - _, ok := cache.GetByName(user.Name) - if ok { - return nil, errors.New("data is exist") - } - - b := cache.Add(user) - if b { - return user, nil - } - - return nil, errors.New("add error") -} - -// GetUserByName query by name, single param, PX config GET. -func (u *UserProvider) GetUserByName(ctx context.Context, name string) (*User, error) { - println("Req GetUserByName name:%#v", name) - r, ok := cache.GetByName(name) - if ok { - println("Req GetUserByName result:%#v", r) - return r, nil - } - return nil, nil -} - -// GetUserByCode query by code, single param, PX config GET. -func (u *UserProvider) GetUserByCode(ctx context.Context, code int64) (*User, error) { - println("Req GetUserByCode name:%#v", code) - r, ok := cache.GetByCode(code) - if ok { - println("Req GetUserByCode result:%#v", r) - return r, nil - } - return nil, nil -} - -// GetUserTimeout query by name, will timeout for pixiu. -func (u *UserProvider) GetUserTimeout(ctx context.Context, name string) (*User, error) { - println("Req GetUserTimeout name:%#v", name) - // sleep 10s, pixiu config less than 10s. - time.Sleep(10 * time.Second) - r, ok := cache.GetByName(name) - if ok { - println("Req GetUserTimeout result:%#v", r) - return r, nil - } - return nil, nil -} - -// GetUserByNameAndAge query by name and age, two params, PX config GET. -func (u *UserProvider) GetUserByNameAndAge(ctx context.Context, name string, age int32) (*User, error) { - println("Req GetUserByNameAndAge name:%s, age:%d", name, age) - r, ok := cache.GetByName(name) - if ok && r.Age == age { - println("Req GetUserByNameAndAge result:%#v", r) - return r, nil - } - return r, nil -} - -// UpdateUser update by user struct, my be another struct, PX config POST or PUT. -func (u *UserProvider) UpdateUser(ctx context.Context, user *User) (bool, error) { - println("Req UpdateUser data:%#v", user) - r, ok := cache.GetByName(user.Name) - if ok { - if user.ID != "" { - r.ID = user.ID - } - if user.Age >= 0 { - r.Age = user.Age - } - return true, nil - } - return false, errors.New("not found") -} - -// UpdateUserByName update by user struct, my be another struct, PX config POST or PUT. -func (u *UserProvider) UpdateUserByName(ctx context.Context, name string, user *User) (bool, error) { - println("Req UpdateUserByName data:%#v", user) - r, ok := cache.GetByName(name) - if ok { - if user.ID != "" { - r.ID = user.ID - } - if user.Age >= 0 { - r.Age = user.Age - } - return true, nil - } - return false, errors.New("not found") -} - -// Reference return reference -func (u *UserProvider) Reference() string { - return "UserProvider" -} - -// JavaClassName return java class name -func (u User) JavaClassName() string { - return "com.ikurento.user.User" -} - -// nolint. -func println(format string, args ...interface{}) { - fmt.Printf("\033[32;40m"+format+"\033[0m\n", args...) -} diff --git a/samples/admin/server/app/version.go b/samples/admin/server/app/version.go deleted file mode 100644 index 4a6595647..000000000 --- a/samples/admin/server/app/version.go +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package main - -// Version dubbo version -var Version = "2.7.5" diff --git a/samples/admin/server/config/log.yml b/samples/admin/server/config/log.yml deleted file mode 100644 index a92b3a238..000000000 --- a/samples/admin/server/config/log.yml +++ /dev/null @@ -1,45 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -level: "info" -development: true -disableCaller: false -disableStacktrace: false -sampling: -encoding: "console" - -# encoder -encoderConfig: - messageKey: "message" - levelKey: "level" - timeKey: "time" - nameKey: "logger" - callerKey: "caller" - stacktraceKey: "stacktrace" - lineEnding: "" - levelEncoder: "capitalColor" - timeEncoder: "iso8601" - durationEncoder: "seconds" - callerEncoder: "short" - nameEncoder: "" - -outputPaths: - - "stderr" -errorOutputPaths: - - "stderr" -initialFields: diff --git a/samples/admin/server/config/server.yml b/samples/admin/server/config/server.yml deleted file mode 100644 index d8010e98a..000000000 --- a/samples/admin/server/config/server.yml +++ /dev/null @@ -1,74 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# dubbo server yaml configure file - - -# application config -application: - organization: "dubbogopixiu.com" - name: "User Micro Service" - module: "dubbogopixiu user-info server" - version: "0.1.0" - group: "tc" - owner: "ZX" - environment: "dev" - -registries: - "zk1": - protocol: "zookeeper" - timeout: "3s" - address: "127.0.0.1:2181" - -services: - "UserProvider": - # Multiple registries can be specified separated by commas -# do not specify to register with all registries by default - registry: "zk1" - protocol: "dubbo" - # Equivalent to the interface in the dubbo.xml file - interface: "com.ic.user.UserProvider" - loadbalance: "random" - warmup: "100" - cluster: "failover" - version: 1.0.0 - group: test - -protocols: - "dubbo": - name: "dubbo" - port: 20000 - -protocol_conf: - dubbo: - session_number: 700 - session_timeout: "20s" - 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_rq_size: 1024 - pkg_wq_size: 512 - tcp_read_timeout: "1s" - tcp_write_timeout: "5s" - wait_timeout: "1s" - max_msg_len: 1024 - session_name: "server"