Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_binary",
"go_library",
)
go_binary(
name = "cmd",
embed = [":go_default_library"],
tags = ["automanaged"],
)
go_library(
name = "go_default_library",
srcs = ["main.go"],
data = ["live-broadcast-proxy.toml"],
importpath = "go-common/app/service/live/broadcast-proxy/cmd",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/live/broadcast-proxy/conf:go_default_library",
"//app/service/live/broadcast-proxy/server:go_default_library",
"//app/service/live/broadcast-proxy/service:go_default_library",
"//library/log:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,49 @@
# This is a TOML document. Boom.
version = "1.0.0"
user = "root"
pid = "/tmp/live-broadcast-proxy.pid"
dir = "./"
perf = "0.0.0.0:20215"
family = "live-broadcast-proxy"
trace = true
debug = true
[log]
#dir = "/data/log/broadcast-proxy"
vlevel = 100
stdout = true
[http]
address = "0.0.0.0:20214"
[backend]
maxIdleConnsPerHost = 512
probePath = "/monitor/ping"
backendServer = ["172.18.33.69:7172","172.18.33.119:80", "172.16.38.159:80", "172.16.38.159:7172"]
probesample = 100
[zookeeper]
address = ["172.18.33.171:2182"]
timeout = "5s"
configpath = "/live/setting/live_broadcast_proxy"
[sinaip]
data = "/data/conf/sinaip.dat"
[ipip]
v4= "/data/conf/v4.ipdb"
v6= "/data/conf/v6.ipdb"
[dispatch]
maxlimit = 2
defaultdomain = "broadcastlv.chat.bilibili.com"
wildcarddomainsuffix=".chat.bilibili.com"
filename="dispatch.json"
[sven]
treeID="24639"
zone="sh001"
env="prod"
build="docker-1"
token="768e1f6f4c3f4c545c8c89852c02fea6"

View File

@@ -0,0 +1,80 @@
package main
import (
"context"
"flag"
"go-common/app/service/live/broadcast-proxy/conf"
"go-common/app/service/live/broadcast-proxy/server"
"go-common/app/service/live/broadcast-proxy/service"
"go-common/library/log"
"net/http"
"net/http/pprof"
"runtime"
"time"
)
func RunPprofServer(addr string) {
pprofServer := http.NewServeMux()
pprofServer.Handle("/debug/pprof/", http.HandlerFunc(pprof.Index))
pprofServer.Handle("/debug/pprof/cmdline", http.HandlerFunc(pprof.Cmdline))
pprofServer.Handle("/debug/pprof/profile", http.HandlerFunc(pprof.Profile))
pprofServer.Handle("/debug/pprof/symbol", http.HandlerFunc(pprof.Symbol))
pprofServer.Handle("/debug/pprof/trace", http.HandlerFunc(pprof.Trace))
go func() {
if e := http.ListenAndServe(addr, pprofServer); e != nil {
log.Error("pprof server error ListenAndServe addr:%s,error:%+v", addr, e)
}
defer func() {
if e := recover(); e != nil {
log.Error("expected panic from pprof server,error:%+v", e)
}
}()
}()
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
var confTomlFile string
flag.StringVar(&confTomlFile, "conf", "", "config file for broadcast proxy")
flag.Parse()
conf, err := conf.NewBroadcastProxyConfig(confTomlFile)
if err != nil {
panic(err)
}
log.Init(conf.Log)
log.Info("Broadcast Proxy Service:%s", time.Now().String())
log.Info("Broadcast Proxy Config:%+v", conf)
proxy, err := server.NewBroadcastProxy(conf.Backend.BackendServer, conf.Backend.ProbePath,
conf.Backend.MaxIdleConnsPerHost, conf.Backend.ProbeSample)
if err != nil {
panic(err)
}
defer proxy.Close()
dispatcher, err := server.NewCometDispatcher(conf.Ipip, conf.Dispatch, conf.Sven)
if err != nil {
panic(err)
}
defer dispatcher.Close()
httpService, err := server.NewBroadcastService(conf.Http.Address, proxy, dispatcher)
if err != nil {
panic(err)
}
defer httpService.Close()
grpcService, err := service.NewGrpcService(proxy, dispatcher)
if err != nil {
panic(err)
}
defer grpcService.Shutdown(context.Background())
RunPprofServer(conf.Perf)
quit := make(chan struct{})
<-quit
}