Skip to content

Commit d0438ac

Browse files
author
chenjie
committed
update
1 parent 8a1e34b commit d0438ac

22 files changed

+58
-213
lines changed

codegen/tml/git/template_ignore.go

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ const text = `*
3939
!AppConfig.json
4040
!cmd.sh
4141
!cmd.bat
42+
!deployment.yaml
43+
!Dockerfile
4244
!go.mod
4345
!main.go
4446
!README.md

codegen/tml/gomod/template_gomod.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const text = `module {{.}}
1111
go 1.15
1212
1313
require (
14-
github.com/chenjie199234/Corelib v0.0.5
14+
github.com/chenjie199234/Corelib v0.0.5.1
1515
github.com/fsnotify/fsnotify v1.4.9
1616
github.com/go-redis/redis/v8 v8.4.8
1717
github.com/go-sql-driver/mysql v1.5.0

codegen/tml/kubernetes/kubernetes.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ spec:
7979
successThreshold: 1
8080
failureThreshold: 5
8181
ports:
82-
- name: http
82+
- name: web
8383
containerPort: 8000
8484
protocol: TCP
85-
- name: grpc
85+
- name: rpc
8686
containerPort: 9000
8787
protocol: TCP
8888
imagePullSecrets:
@@ -118,11 +118,11 @@ metadata:
118118
spec:
119119
type: ClusterIP
120120
ports:
121-
- name: http
121+
- name: web
122122
protocol: TCP
123123
port: 80
124124
targetPort: 8000
125-
- name: grpc
125+
- name: rpc
126126
protocol: TCP
127127
port: 90
128128
targetPort: 9000

discovery/client.go

+7-10
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,9 @@ func NewDiscoveryClient(c *stream.InstanceConfig, vdata []byte, finder Discovery
102102
//server addr format: servername:ip:port
103103
func UpdateDiscoveryServers(serveraddrs []string) {
104104
clientinstance.lker.Lock()
105+
defer clientinstance.lker.Unlock()
105106
if clientinstance.status == 0 {
106-
clientinstance.lker.Unlock()
107+
//clientinstance.lker.Unlock()
107108
return
108109
}
109110
//delete offline server
@@ -158,7 +159,6 @@ func UpdateDiscoveryServers(serveraddrs []string) {
158159
go clientinstance.start(saddr[findex+1:], saddr[:findex])
159160
}
160161
}
161-
clientinstance.lker.Unlock()
162162
}
163163
func (c *DiscoveryClient) start(addr, servername string) {
164164
tempverifydata := common.Byte2str(clientinstance.verifydata) + "|" + servername
@@ -167,7 +167,7 @@ func (c *DiscoveryClient) start(addr, servername string) {
167167
server, ok := c.servers[servername+":"+addr]
168168
if !ok {
169169
//server removed
170-
c.lker.Unlock()
170+
c.lker.RUnlock()
171171
return
172172
}
173173
server.lker.Lock()
@@ -214,8 +214,8 @@ func RegisterSelf(regmsg *RegMsg) error {
214214
return ERRREGMSG_CHAR
215215
}
216216
clientinstance.lker.Lock()
217+
defer clientinstance.lker.Unlock()
217218
if clientinstance.regdata != nil {
218-
clientinstance.lker.Unlock()
219219
return ERRREG
220220
}
221221
clientinstance.regdata = d
@@ -229,7 +229,6 @@ func RegisterSelf(regmsg *RegMsg) error {
229229
}
230230
server.lker.Unlock()
231231
}
232-
clientinstance.lker.Unlock()
233232
return nil
234233
}
235234
func UnRegisterSelf() error {
@@ -269,13 +268,13 @@ func NoticeWebChanges(appname string) (chan struct{}, error) {
269268
}
270269
clientinstance.lker.RUnlock()
271270
clientinstance.nlker.Lock()
271+
defer clientinstance.nlker.Unlock()
272272
if _, ok := clientinstance.webnotices[appname]; !ok {
273273
clientinstance.webnotices[appname] = make(map[chan struct{}]struct{}, 10)
274274
}
275275
ch := make(chan struct{}, 1)
276276
ch <- struct{}{}
277277
clientinstance.webnotices[appname][ch] = struct{}{}
278-
clientinstance.nlker.Unlock()
279278
return ch, nil
280279
}
281280

@@ -367,13 +366,12 @@ func (c *DiscoveryClient) verifyfunc(ctx context.Context, serveruniquename strin
367366
return nil, false
368367
}
369368
server.lker.Lock()
369+
defer server.lker.Unlock()
370370
c.lker.RUnlock()
371371
if server.peer != nil || server.status != 1 || server.starttime != 0 {
372-
server.lker.Unlock()
373372
return nil, false
374373
}
375374
server.status = 2
376-
server.lker.Unlock()
377375
return nil, true
378376
}
379377
func (c *DiscoveryClient) onlinefunc(p *stream.Peer, serveruniquename string, starttime uint64) {
@@ -386,10 +384,10 @@ func (c *DiscoveryClient) onlinefunc(p *stream.Peer, serveruniquename string, st
386384
return
387385
}
388386
server.lker.Lock()
387+
defer server.lker.Unlock()
389388
c.lker.RUnlock()
390389
if server.peer != nil || server.status != 2 || server.starttime != 0 {
391390
p.Close()
392-
server.lker.Unlock()
393391
return
394392
}
395393
log.Info("[Discovery.client.onlinefunc] server:", serveruniquename, "online")
@@ -414,7 +412,6 @@ func (c *DiscoveryClient) onlinefunc(p *stream.Peer, serveruniquename string, st
414412
for k := range result {
415413
server.peer.SendMessage(makePullMsg(k), server.starttime, true)
416414
}
417-
server.lker.Unlock()
418415
return
419416
}
420417
func (c *DiscoveryClient) userfunc(p *stream.Peer, serveruniquename string, origindata []byte, starttime uint64) {

discovery/server.go

+3
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ func NewDiscoveryServer(c *stream.InstanceConfig, vdata []byte) (*discoveryserve
7171
func (s *discoveryserver) StartDiscoveryServer(listenaddr string) error {
7272
return s.instance.StartTcpServer(listenaddr)
7373
}
74+
func (s *discoveryserver) StopDiscoveryServer() {
75+
s.instance.Stop()
76+
}
7477

7578
//appuniquename = appname:ip:port
7679
func (s *discoveryserver) verifyfunc(ctx context.Context, appuniquename string, peerVerifyData []byte) ([]byte, bool) {

go.mod

-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@ module github.com/chenjie199234/Corelib
33
go 1.15
44

55
require (
6-
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect
7-
github.com/go-ole/go-ole v1.2.5 // indirect
86
github.com/go-sql-driver/mysql v1.5.0
97
github.com/golang/protobuf v1.4.3
108
github.com/gomodule/redigo v1.8.3
119
github.com/julienschmidt/httprouter v1.3.0
12-
github.com/shirou/gopsutil v3.21.1+incompatible
1310
google.golang.org/protobuf v1.25.0
1411
)

go.sum

-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
22
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3-
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk=
4-
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
53
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
64
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
75
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
86
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
97
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
108
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
11-
github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY=
12-
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
139
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
1410
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
1511
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -37,8 +33,6 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8
3733
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3834
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
3935
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
40-
github.com/shirou/gopsutil v3.21.1+incompatible h1:2LwXWdbjXwyDgq26Yy/OT4xozlpmssQfy/rtfhWb0bY=
41-
github.com/shirou/gopsutil v3.21.1+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
4236
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
4337
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
4438
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
@@ -58,8 +52,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
5852
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
5953
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
6054
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
61-
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 h1:7TYNF4UdlohbFwpNH04CoPMp1cHUZgO1Ebq5r2hIjfo=
62-
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
6355
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
6456
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
6557
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=

redis/redis.go

+3
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ func putconn(c *Conn) {
7272
c.c.Close()
7373
p.Put(c)
7474
}
75+
func (p *Pool) GetRedis() *redis.Pool {
76+
return p.p
77+
}
7578
func (p *Pool) GetContext(ctx context.Context) (*Conn, error) {
7679
c, e := p.p.GetContext(ctx)
7780
if e != nil {

rpc/client.go

+5-8
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,11 @@ type ServerForPick struct {
5555
Pickinfo *pickinfo
5656
}
5757
type pickinfo struct {
58-
Lastfail int64 //last fail timestamp nanosecond
59-
Cpu float64 //cpuinfo
60-
Activecalls int32 //current active calls
61-
DServers int32 //this app registered on how many discoveryservers
62-
DServerOffline int64 //
63-
Addition []byte //addition info register on register center
58+
Lastfail int64 //last fail timestamp nanosecond
59+
Activecalls int32 //current active calls
60+
DServers int32 //this app registered on how many discoveryservers
61+
DServerOffline int64 //
62+
Addition []byte //addition info register on register center
6463
}
6564

6665
func (s *ServerForPick) Pickable() bool {
@@ -156,7 +155,6 @@ func (c *RpcClient) UpdateDiscovery(allapps map[string]map[string]struct{}, addi
156155
lker: &sync.Mutex{},
157156
Pickinfo: &pickinfo{
158157
Lastfail: 0,
159-
Cpu: 1,
160158
Activecalls: 0,
161159
DServers: int32(len(discoveryservers)),
162160
DServerOffline: 0,
@@ -319,7 +317,6 @@ func (c *RpcClient) userfunc(p *stream.Peer, appuniquename string, data []byte,
319317
if e != nil && e.Code == ERRCLOSING.Code {
320318
server.status = 4
321319
}
322-
server.Pickinfo.Cpu = msg.Cpu
323320
req, ok := server.reqs[msg.Callid]
324321
if !ok {
325322
server.lker.Unlock()

rpc/context.go

-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package rpc
22

33
import (
44
"context"
5-
6-
"github.com/chenjie199234/Corelib/util/cpu"
75
)
86

97
type Context struct {
@@ -32,7 +30,6 @@ func (c *Context) Abort(e error) {
3230
c.msg.Path = ""
3331
c.msg.Deadline = 0
3432
c.msg.Body = nil
35-
c.msg.Cpu = cpu.GetUse()
3633
c.msg.Error = e.Error()
3734
c.msg.Metadata = nil
3835
c.next = -1
@@ -42,7 +39,6 @@ func (c *Context) Write(resp []byte) {
4239
c.msg.Path = ""
4340
c.msg.Deadline = 0
4441
c.msg.Body = resp
45-
c.msg.Cpu = cpu.GetUse()
4642
c.msg.Error = ""
4743
c.msg.Metadata = nil
4844
c.next = -1

rpc/msg.pb.go

+15-24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rpc/msg.proto

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ message msg {
55
uint64 callid=1;
66
string path=2;
77
int64 deadline=3;
8-
double cpu=4;
9-
bytes body=5;
10-
string error=6;
11-
map<string,string> metadata=7;
8+
bytes body=4;
9+
string error=5;
10+
map<string,string> metadata=6;
1211
}

rpc/picker.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package rpc
22

33
import (
4-
"math"
54
"math/rand"
65
"time"
76
)
@@ -83,9 +82,9 @@ func defaultPicker(servers []*ServerForPick) *ServerForPick {
8382
}
8483
}
8584
//more discoveryservers more safety,so 1 * 2's discoveryserver num
86-
load1 := normal1.Pickinfo.Cpu * float64(normal1.Pickinfo.Activecalls) * math.Log(float64(normal2.Pickinfo.DServers+2))
85+
load1 := normal1.Pickinfo.Activecalls
8786
//more discoveryservers more safety,so 2 * 1's discoveryserver num
88-
load2 := normal2.Pickinfo.Cpu * float64(normal2.Pickinfo.Activecalls) * math.Log(float64(normal1.Pickinfo.DServers+2))
87+
load2 := normal2.Pickinfo.Activecalls
8988
if load1 > load2 {
9089
return normal2
9190
} else if load1 < load2 {

0 commit comments

Comments
 (0)