Skip to content

Commit af12d7e

Browse files
committed
添加监听配置自动重连逻辑
1 parent 25f74d3 commit af12d7e

File tree

12 files changed

+723
-5
lines changed

12 files changed

+723
-5
lines changed

.vscode/launch.json

+12-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,17 @@
3535
"^TestRpcLogicReSubscribeAsk$",
3636
"./internal/rpc",
3737
],
38-
}
38+
},
39+
{
40+
"name": "Launch chat pusher",
41+
"type": "go",
42+
"request": "launch",
43+
"mode": "auto",
44+
"program": "${workspaceFolder}/cmd/chat-pusher",
45+
"buildFlags": [
46+
"-race",
47+
],
48+
"args": [],
49+
},
3950
]
4051
}

cmd/chat-auth/main.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
6+
"github.com/jsn4ke/chat/internal/rpc"
7+
jsn_rpc "github.com/jsn4ke/jsn_net/rpc"
8+
)
9+
10+
var (
11+
authAddr = flag.String("addr", "", "")
12+
)
13+
14+
func main() {
15+
flag.Parse()
16+
svr := jsn_rpc.NewServer(*authAddr, 128, 4)
17+
rpc.NewRpcAuthServer(svr, 4, make(<-chan struct{})).Run()
18+
}

cmd/chat-gateway/main.go

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"os"
6+
7+
"github.com/jsn4ke/chat/internal/cluster"
8+
"github.com/jsn4ke/chat/internal/gateway"
9+
"github.com/jsn4ke/chat/internal/rpc"
10+
"github.com/redis/go-redis/v9"
11+
)
12+
13+
var (
14+
addr = flag.String("addr", "", "")
15+
rpcAddr = flag.String("rpcaddr", "", "")
16+
17+
Addr = os.Getenv("REDIS_ADDR")
18+
Password = os.Getenv("REDIS_PSW")
19+
)
20+
21+
func main() {
22+
flag.Parse()
23+
24+
rdb := redis.NewClient(&redis.Options{
25+
Addr: Addr,
26+
Password: Password,
27+
})
28+
29+
auth := cluster.NewRpcAuthCliCluster(rdb)
30+
logic := cluster.NewRpcLogicCliCluster(rdb)
31+
32+
gateway.NewGateway(1, *addr, *rpcAddr, make(<-chan struct{}),
33+
auth,
34+
logic,
35+
rpc.NewRpcGatewaySvrWrap,
36+
)
37+
38+
select {}
39+
}

cmd/chat-logic/main.go

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"os"
6+
7+
"github.com/jsn4ke/chat/internal/cluster"
8+
"github.com/jsn4ke/chat/internal/rpc"
9+
jsn_rpc "github.com/jsn4ke/jsn_net/rpc"
10+
"github.com/redis/go-redis/v9"
11+
)
12+
13+
var (
14+
logicAddr = flag.String("addr", "", "")
15+
16+
Addr = os.Getenv("REDIS_ADDR")
17+
Password = os.Getenv("REDIS_PSW")
18+
)
19+
20+
func main() {
21+
flag.Parse()
22+
23+
rdb := redis.NewClient(&redis.Options{
24+
Addr: Addr,
25+
Password: Password,
26+
})
27+
svr := jsn_rpc.NewServer(*logicAddr, 128, 4)
28+
29+
pusher := cluster.NewRpcPusherCliCluster(rdb)
30+
gateway := cluster.NewRpcGatewayCliCluster(rdb)
31+
32+
rpc.NewRpcLogicServer(svr, 20, make(<-chan struct{}),
33+
pusher,
34+
gateway,
35+
rdb,
36+
).Run()
37+
}

cmd/chat-pusher/main.go

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"os"
6+
"time"
7+
8+
"github.com/jsn4ke/chat/internal/cluster"
9+
"github.com/jsn4ke/chat/internal/rpc"
10+
jsn_rpc "github.com/jsn4ke/jsn_net/rpc"
11+
"github.com/redis/go-redis/v9"
12+
)
13+
14+
var (
15+
pushAddr = flag.String("addr", "", "")
16+
17+
Addr = os.Getenv("REDIS_ADDR")
18+
Password = os.Getenv("REDIS_PSW")
19+
)
20+
21+
func main() {
22+
flag.Parse()
23+
rdb := redis.NewClient(&redis.Options{
24+
Addr: Addr,
25+
Password: Password,
26+
})
27+
gateway := cluster.NewRpcGatewayCliCluster(rdb)
28+
svr := jsn_rpc.NewServer(*pushAddr, 128, 4)
29+
rpc.NewRpcPusherSvr(svr, 4, make(<-chan struct{}), rdb, gateway, time.Millisecond*10).Run()
30+
}

cmd/mock-client/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
)
1818

1919
var (
20-
gatewayAddr = "127.0.0.1:10001"
20+
gatewayAddr = "127.0.0.1:14001"
2121
)
2222

2323
var (

cmd/mock-gateway/main.go

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"flag"
5+
"fmt"
56
"net/http"
67
_ "net/http/pprof"
78
"os"
@@ -115,6 +116,7 @@ var (
115116
)
116117

117118
func newRpcLogicServer() {
119+
fmt.Println("==", Addr, Password)
118120
rdb := redis.NewClient(&redis.Options{
119121
Addr: Addr,
120122
Password: Password,
@@ -136,6 +138,7 @@ func newRpcAuthServer() {
136138
}
137139

138140
func newRpcPushServer() {
141+
fmt.Println(Addr, Password)
139142
rdb := redis.NewClient(&redis.Options{
140143
Addr: Addr,
141144
Password: Password,

go.mod

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ go 1.21.5
55
require (
66
github.com/cespare/xxhash/v2 v2.2.0 // indirect
77
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
8+
github.com/fsnotify/fsnotify v1.7.0 // indirect
89
github.com/golang-jwt/jwt/v5 v5.2.0 // indirect
9-
github.com/jsn4ke/jsn_net v0.0.8 // indirect
10+
github.com/jsn4ke/jsn_net v0.0.10 // indirect
1011
github.com/redis/go-redis/v9 v9.3.1 // indirect
12+
golang.org/x/sys v0.16.0 // indirect
1113
google.golang.org/protobuf v1.32.0 // indirect
1214
)

go.sum

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj
22
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
33
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
44
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
5+
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
6+
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
57
github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw=
68
github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
79
github.com/jsn4ke/jsn_net v0.0.2 h1:7yLLP7/pKk2hSg2gmh0HRatgeK626CHhbO0lEgzgwKo=
@@ -18,7 +20,13 @@ github.com/jsn4ke/jsn_net v0.0.7 h1:jIA66Es6BpXYA7G744T7gvLcErrFbovCLb4rNx/K3tI=
1820
github.com/jsn4ke/jsn_net v0.0.7/go.mod h1:F2BO8Zw7E5uzl9Vd9gBJxb4mkO0f6j5vD76lvGPkQ9k=
1921
github.com/jsn4ke/jsn_net v0.0.8 h1:Hv9PpxSCY76quTS3One1LKGuVq9b33Tw026QZU/J4Rk=
2022
github.com/jsn4ke/jsn_net v0.0.8/go.mod h1:F2BO8Zw7E5uzl9Vd9gBJxb4mkO0f6j5vD76lvGPkQ9k=
23+
github.com/jsn4ke/jsn_net v0.0.9 h1:maqVnYfqeqDuvKju2FlvfIK8rpCgBYK7P3+2+Q8+dF4=
24+
github.com/jsn4ke/jsn_net v0.0.9/go.mod h1:F2BO8Zw7E5uzl9Vd9gBJxb4mkO0f6j5vD76lvGPkQ9k=
25+
github.com/jsn4ke/jsn_net v0.0.10 h1:VbQ8RKEt1XAsnZ9HFq6bGzh3uqQVrMVcDaeZg/Rqzkg=
26+
github.com/jsn4ke/jsn_net v0.0.10/go.mod h1:F2BO8Zw7E5uzl9Vd9gBJxb4mkO0f6j5vD76lvGPkQ9k=
2127
github.com/redis/go-redis/v9 v9.3.1 h1:KqdY8U+3X6z+iACvumCNxnoluToB+9Me+TvyFa21Mds=
2228
github.com/redis/go-redis/v9 v9.3.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
29+
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
30+
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
2331
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
2432
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=

0 commit comments

Comments
 (0)