-
Notifications
You must be signed in to change notification settings - Fork 0
/
service.go
79 lines (71 loc) · 1.82 KB
/
service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package service
import (
"net"
"time"
"github.com/valyala/fasthttp"
"github.com/xybstone/fasthttp-routing"
)
var (
// ServiceName 服务名称
ServiceName = "XService"
// ServiceVersion 版本
ServiceVersion = "1.0.0.1"
// Concurrency Concurrency
Concurrency = 100000
// DisableKeepalive DisableKeepalive
DisableKeepalive = true
//Timeout Timeout
Timeout = 60 * time.Second
// MaxConnsPerIP MaxConnsPerIP
MaxConnsPerIP = 100000
// MaxRequestsPerConn MaxRequestsPerConn
MaxRequestsPerConn = 100000
// MaxKeepaliveDuration MaxKeepaliveDuration
MaxKeepaliveDuration = 120 * time.Second
// MaxRequestBodySize MaxRequestBodySize
MaxRequestBodySize = 512 * 1024 * 1024
// ReadBufferSize ReadBufferSize
ReadBufferSize = 16 * 1024
// WriteBufferSize WriteBufferSize
WriteBufferSize = 16 * 1024
)
// Logger 日志插件
var XLogger fasthttp.Logger
func GetRoute() *routing.Router {
router := routing.New()
// 原有方式注册
RegsitRouter(router, new(BaseServer))
// 扩展方式注册
RegisterGroup(router, new(BaseGroup))
return router
}
func GetServer() *fasthttp.Server {
r := GetRoute()
if r != nil {
return &fasthttp.Server{
Handler: r.HandleRequest,
Name: ServiceName,
Concurrency: Concurrency,
DisableKeepalive: DisableKeepalive,
ReadTimeout: Timeout,
WriteTimeout: Timeout,
MaxConnsPerIP: MaxConnsPerIP,
MaxRequestsPerConn: MaxRequestsPerConn,
MaxKeepaliveDuration: MaxKeepaliveDuration,
MaxRequestBodySize: MaxRequestBodySize,
ReadBufferSize: ReadBufferSize,
WriteBufferSize: WriteBufferSize,
Logger: XLogger,
LogAllErrors: true,
}
}
return nil
}
// Run 启动服务
func Run(n net.Listener) {
s := GetServer()
if s != nil {
NewUniqueIDAsync()
s.Serve(n)
}
}