pull/25/head
sunface 7 years ago
parent b93493243a
commit 962ed940a9

@ -3,7 +3,6 @@ package api
import (
"net/http"
"net/rpc"
"tfgo/tfe/api/async"
"time"
"github.com/mafanr/juz/api/filter"
@ -26,7 +25,7 @@ type ApiServer struct {
}
func (p *ApiServer) Start() {
g.L.Info("start tfe..")
g.Info("start tfe..")
// 初始化mysql连接
misc.InitMysql()
@ -51,7 +50,7 @@ func (p *ApiServer) Start() {
}
func (o *ApiServer) Shutdown() {
g.L.Info("shutdown tfe..")
g.Info("shutdown tfe..")
}
func (p *ApiServer) listen() {
@ -60,8 +59,6 @@ func (p *ApiServer) listen() {
// 回调相关
//同步回调接口
e.Any("/*", p.router.route, timing)
//异步回调接口
e.POST("/notify", async.Notify)
e.Logger.Fatal(e.Start(":" + misc.Conf.Api.Port))
}
@ -70,7 +67,7 @@ func timing(f echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
ts := time.Now()
rid := (ts.UnixNano()/10)*10 + misc.Conf.Api.ServerID
g.L.Info("New request accepted", zap.Int64("rid", rid), zap.String("ip", c.RealIP()))
g.Info("New request accepted", zap.Int64("rid", rid), zap.String("ip", c.RealIP()))
c.Set("rid", rid)
defer func() {
// 统计请求指标
@ -85,9 +82,9 @@ func timing(f echo.HandlerFunc) echo.HandlerFunc {
err := c.Get("error_msg")
if err == nil {
g.L.Info("Request success", zap.Int64("rid", rid))
g.Info("Request success", zap.Int64("rid", rid))
} else {
g.L.Info("Request failed", zap.Int64("rid", rid), zap.Error(err.(error)))
g.Info("Request failed", zap.Int64("rid", rid), zap.Error(err.(error)))
}
}()
@ -98,7 +95,7 @@ func timing(f echo.HandlerFunc) echo.HandlerFunc {
func (as *ApiServer) initTraffic() {
r, err := rpc.Dial("tcp", misc.Conf.Traffic.Host+":"+misc.Conf.Traffic.Port)
if err != nil {
g.L.Fatal("connect to raffic error", zap.Error(err))
g.Fatal("connect to raffic error", zap.Error(err))
}
as.router.Filter.Rpc = r
@ -108,15 +105,15 @@ func (as *ApiServer) initTraffic() {
var res int
err := as.router.Filter.Rpc.Call("RateLimiter.Ping", 1, &res)
if err != nil || res != 1 {
g.L.Warn("rpc ping failed", zap.Error(err))
g.Warn("rpc ping failed", zap.Error(err))
r, err := rpc.Dial("tcp", misc.Conf.Traffic.Host+":"+misc.Conf.Traffic.Port)
if err != nil {
g.L.Warn("re-connect to traffic error", zap.Error(err))
g.Warn("re-connect to traffic error", zap.Error(err))
time.Sleep(2 * time.Second)
continue
}
as.router.Filter.Rpc = r
g.L.Info("re-connect to traffic ok")
g.Info("re-connect to traffic ok")
}
time.Sleep(3 * time.Second)

@ -44,7 +44,7 @@ func (f *Filter) BeforeRoute(r *req.Request) Result {
// 黑白名单
err := f.checkBW(r)
if err != nil {
g.L.Info("BeforeRoute failed", zap.Error(err))
g.Info("BeforeRoute failed", zap.Error(err))
// 统计被阻挡数
stats.Limits.With(prometheus.Labels{
"api_id": r.Api.APIID,
@ -57,7 +57,7 @@ func (f *Filter) BeforeRoute(r *req.Request) Result {
// 参数校验
err = f.verifyParam(r)
if err != nil {
g.L.Info("BeforeRoute failed", zap.Error(err))
g.Info("BeforeRoute failed", zap.Error(err))
return Result{http.StatusBadRequest, g.ParamInvalidC, g.ParamInvalidE}
}

@ -21,7 +21,7 @@ func (f *Filter) DecApiRate(r *req.Request) {
err := f.Rpc.Call("RateLimiter.DecApiRate", &misc.TrafficConReq{r.Api.APIID, r.Api.TrafficStrategy, ""}, &res)
if err != nil {
if !strings.Contains(err.Error(), "shut down") {
g.L.Warn("rpc出错了", zap.Error(err))
g.Warn("rpc出错了", zap.Error(err))
}
}
}
@ -48,7 +48,7 @@ func (f *Filter) IncApiRate(r *req.Request) (int, error) {
err := f.Rpc.Call("RateLimiter.IncApiRate", &misc.TrafficConReq{r.Api.APIID, r.Api.TrafficStrategy, val}, &res)
if err != nil {
if !strings.Contains(err.Error(), "shut down") {
g.L.Warn("rpc出错了", zap.Error(err))
g.Warn("rpc出错了", zap.Error(err))
}
return 0, nil
}

@ -33,7 +33,7 @@ func (f *Filter) trafficRoute(r *req.Request) {
api := apiI.(*misc.API)
// 是否在路由ip列表中如果在直接路由
if strings.Contains(r.Api.TrafficIPs, r.ClientIP) {
g.Debug(r.DebugOn, misc.Conf.Common.LogLevel, "Canary by ip", zap.String("old_api", r.Api.APIID), zap.String("new_api", api.APIID), zap.String("client_ip", r.ClientIP))
g.Debug(r.DebugOn, "Canary by ip", zap.String("old_api", r.Api.APIID), zap.String("new_api", api.APIID), zap.String("client_ip", r.ClientIP))
r.Api = api
return
}
@ -43,6 +43,6 @@ func (f *Filter) trafficRoute(r *req.Request) {
if n > r.Api.TrafficRatio {
return
}
g.Debug(r.DebugOn, misc.Conf.Common.LogLevel, "Canary by random", zap.String("old_api", r.Api.APIID), zap.String("new_api", api.APIID))
g.Debug(r.DebugOn, "Canary by random", zap.String("old_api", r.Api.APIID), zap.String("new_api", api.APIID))
r.Api = api
}

@ -38,7 +38,7 @@ func (p *ApiServer) loadAll() {
apisS := make([]*misc.API, 0)
err := g.DB.Select(&apisS, "select * from api_release")
if err != nil {
g.L.Fatal("load apis error!", zap.Error(err))
g.Fatal("load apis error!", zap.Error(err))
}
an := make([]string, 0, len(apisS))
@ -68,7 +68,7 @@ func (p *ApiServer) loadAll() {
strategies := make([]*misc.Strategy, 0)
err = g.DB.Select(&strategies, "select * from strategy")
if err != nil {
g.L.Fatal("load strategies error!", zap.Error(err))
g.Fatal("load strategies error!", zap.Error(err))
}
for _, s := range strategies {
@ -110,7 +110,7 @@ func (p *ApiServer) loadUpdated() {
err := g.DB.Select(&apisS, fmt.Sprintf("select * from api_release where modify_date >= '%s'", lastT))
if err != nil {
g.L.Error("load apis error!", zap.Error(err))
g.Error("load apis error!", zap.Error(err))
return
}
@ -149,7 +149,7 @@ func (p *ApiServer) loadUpdated() {
query := fmt.Sprintf("select * from strategy where modify_date >= '%s'", lastT)
err := g.DB.Select(&strategies, query)
if err != nil {
g.L.Error("load strategies error!", zap.Error(err), zap.String("query", query))
g.Error("load strategies error!", zap.Error(err), zap.String("query", query))
return
}

@ -59,7 +59,7 @@ func (m *Manage) QueryAPI(c echo.Context) error {
err := g.DB.Select(&apis, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -101,7 +101,7 @@ func (m *Manage) CountAPI(c echo.Context) error {
rows, err := g.DB.Query(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -156,7 +156,7 @@ func (m *Manage) DefineAPI(c echo.Context) error {
Message: g.AlreadyExistE,
})
}
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -169,7 +169,7 @@ func (m *Manage) DefineAPI(c echo.Context) error {
api.APIID, api.PathType, api.Service, api.RouteAddr, misc.API_OFFLINE, date)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -182,7 +182,7 @@ func (m *Manage) DefineAPI(c echo.Context) error {
*api.Desc, api.RouteType, api.RouteAddr, api.RouteProto, api.BwStrategy, api.RetryStrategy, api.TrafficStrategy, *api.MockData, api.TrafficOn, api.TrafficAPI, api.TrafficRatio, api.TrafficIPs, api.VerifyOn, pr, api.CachedTime, api.App, api.APIID)
res, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -246,7 +246,7 @@ func (m *Manage) DeleteAPI(c echo.Context) error {
query := fmt.Sprintf("select status,modify_date from api_release where api_id='%s'", apiID)
rows, err := g.DB.Query(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -287,7 +287,7 @@ func (m *Manage) DeleteAPI(c echo.Context) error {
query = fmt.Sprintf("delete from api_release where api_id='%s'", apiID)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -300,7 +300,7 @@ func (m *Manage) DeleteAPI(c echo.Context) error {
query = fmt.Sprintf("select * from api_define where api_id='%s'", apiID)
err = g.DB.Get(&api, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
}
if api.ParamTable != nil {
d, _ := g.B64.DecodeString(*api.ParamTable)
@ -314,7 +314,7 @@ func (m *Manage) DeleteAPI(c echo.Context) error {
query = fmt.Sprintf("delete from api_define where api_id='%s'", apiID)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -335,7 +335,7 @@ func (m *Manage) parseAPI(c echo.Context) (*misc.API, int, string) {
api := &misc.API{}
err := json.Unmarshal([]byte(apiR), &api)
if err != nil {
g.L.Info("parse api", zap.Error(err), zap.String("api", string(apiR)))
g.Info("parse api", zap.Error(err), zap.String("api", string(apiR)))
return nil, g.ParamInvalidC, g.ParamInvalidE
}
@ -440,7 +440,7 @@ func (m *Manage) APIRelease(c echo.Context) error {
query := fmt.Sprintf("select * from api_define where api_id='%s'", apiID)
err := g.DB.Get(&api, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -454,7 +454,7 @@ func (m *Manage) APIRelease(c echo.Context) error {
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -465,7 +465,7 @@ func (m *Manage) APIRelease(c echo.Context) error {
query = fmt.Sprintf("update api_define set release_version='%s' where api_id='%s'", api.ReviseVersion, api.APIID)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -511,7 +511,7 @@ func (m *Manage) APIOffline(c echo.Context) error {
misc.API_OFFLINE, apiID)
_, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -523,7 +523,7 @@ func (m *Manage) APIOffline(c echo.Context) error {
query = fmt.Sprintf("update api_define set release_version='%s' where api_id='%s'", "", apiID)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -536,7 +536,7 @@ func (m *Manage) APIOffline(c echo.Context) error {
query = fmt.Sprintf("select * from api_release where api_id='%s'", apiID)
err = g.DB.Get(&api, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
}
if api.ParamTable != nil {
d, _ := g.B64.DecodeString(*api.ParamTable)
@ -638,7 +638,7 @@ func (m *Manage) APIBatchStrategy(c echo.Context) error {
query = fmt.Sprintf("%s where api_id = '%s'", query, apiID)
res, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -716,7 +716,7 @@ func (m *Manage) APIBatchDelStrategy(c echo.Context) error {
res, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -785,7 +785,7 @@ func (m *Manage) APIBatchRelease(c echo.Context) error {
query := fmt.Sprintf("select * from api_define where api_id='%s'", apiID)
err := g.DB.Get(&api, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -799,7 +799,7 @@ func (m *Manage) APIBatchRelease(c echo.Context) error {
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -810,7 +810,7 @@ func (m *Manage) APIBatchRelease(c echo.Context) error {
query = fmt.Sprintf("update api_define set release_version='%s' where api_id='%s'", api.ReviseVersion, api.APIID)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,

@ -33,7 +33,7 @@ func Log(userID string, service string, targetType int, targetID string, opType
userID, service, targetType, targetID, opType, newc, desc)
_, err := g.DB.Exec(query)
if err != nil {
g.L.Info("record audit log error", zap.Error(err), zap.String("query", query))
g.Info("record audit log error", zap.Error(err), zap.String("query", query))
}
}
@ -56,7 +56,7 @@ func Count(c echo.Context) error {
}
rows, err := g.DB.Query(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -116,7 +116,7 @@ func Load(c echo.Context) error {
}
err := g.DB.Select(&rs, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,

@ -5,7 +5,6 @@ import (
"net/http"
"strconv"
"strings"
"time"
"github.com/mafanr/juz/api/manage/audit"
"github.com/mafanr/juz/api/manage/strategy"
@ -13,16 +12,13 @@ import (
"github.com/mafanr/g"
"go.uber.org/zap"
"github.com/labstack/echo"
"github.com/sunface/talent"
)
type Manage struct{}
func (m *Manage) Start() {
registerToEtcd()
g.RegisterInETCD(g.APP_JUZ_MANAGE, misc.Conf.Etcd.Addrs, misc.Conf.Manage.Port)
e := echo.New()
//api管理
@ -69,26 +65,6 @@ func auth(f echo.HandlerFunc) echo.HandlerFunc {
}
}
func registerToEtcd() {
g.EtcdCli = g.InitEtcd(misc.Conf.Etcd.Addrs)
// 保存服务状态到etcd
ip := talent.LocalIP()
fmt.Println("local ip:", ip)
host := ip + ":" + misc.Conf.Manage.Port
go func() {
for {
err := g.StoreServer(g.EtcdCli, &g.ServerInfo{g.TFEManage, host, 0})
if err != nil {
g.L.Error("Store to etcd error", zap.Error(err))
}
time.Sleep(time.Second * g.ServiceStoreInterval)
}
}()
}
func validUserID(s string) bool {
i, err := strconv.Atoi(s)
if err != nil {

@ -65,7 +65,7 @@ func Create(c echo.Context) error {
Message: "Strategy name already exist",
})
}
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -103,7 +103,7 @@ func Update(c echo.Context) error {
st.Name, st.SubType, st.Content, st.ID)
_, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -139,7 +139,7 @@ func Load(c echo.Context) error {
err := g.DB.Select(&ss, query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -191,7 +191,7 @@ func Delete(c echo.Context) error {
}
_, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -209,7 +209,7 @@ func Delete(c echo.Context) error {
}
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -220,7 +220,7 @@ func Delete(c echo.Context) error {
query = fmt.Sprintf("delete from strategy where id='%s'", id)
_, err = g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,
@ -266,7 +266,7 @@ func Change(c echo.Context) error {
query := fmt.Sprintf("update strategy set status='%d' where id='%s'", newS, id)
_, err := g.DB.Exec(query)
if err != nil {
g.L.Info("access database error", zap.Error(err), zap.String("query", query))
g.Info("access database error", zap.Error(err), zap.String("query", query))
return c.JSON(http.StatusInternalServerError, g.Result{
Status: http.StatusInternalServerError,
ErrCode: g.DatabaseC,

@ -50,7 +50,7 @@ func (router *router) route(c echo.Context) error {
c.Set("service", r.Api.Service)
c.Set("app", r.Api.App)
g.Debug(r.DebugOn, misc.Conf.Common.LogLevel, "request content", zap.Int64("rid", r.Rid), zap.String("req", r.String()))
g.Debug(r.DebugOn, "request content", zap.Int64("rid", r.Rid), zap.String("req", r.String()))
// 判断api是否发布
if r.Api.Status != misc.API_RELEASED {
@ -81,7 +81,7 @@ func (router *router) route(c echo.Context) error {
return c.JSON(code, g.Result{r.Rid, code, g.ReqFailedC, err.Error(), nil})
}
g.Debug(r.DebugOn, misc.Conf.Common.LogLevel, "response body", zap.Int64("rid", r.Rid), zap.Int("code", code), zap.String("body", talent.Bytes2String(body)))
g.Debug(r.DebugOn, "response body", zap.Int64("rid", r.Rid), zap.Int("code", code), zap.String("body", talent.Bytes2String(body)))
// 成功时把请求id放在header中返回避免污染返回结果
c.Response().Header().Add("rid", strconv.FormatInt(r.Rid, 10))

@ -17,7 +17,6 @@ package cmd
import (
"os"
"os/signal"
"strings"
"syscall"
"github.com/mafanr/juz/misc"
@ -39,9 +38,8 @@ var apiCmd = &cobra.Command{
// has an action associated with it:
Run: func(cmd *cobra.Command, args []string) {
misc.InitConfig("juz.conf")
misc.Conf.Common.LogLevel = strings.ToLower(misc.Conf.Common.LogLevel)
g.InitLogger()
g.L.Info("Application version", zap.String("version", misc.Conf.Common.Version))
g.InitLogger(misc.Conf.Common.LogLevel)
g.Info("Application version", zap.String("version", misc.Conf.Common.Version))
p := &api.ApiServer{}
p.Start()
@ -51,7 +49,7 @@ var apiCmd = &cobra.Command{
signal.Notify(chSig, syscall.SIGINT, syscall.SIGTERM)
sig := <-chSig
g.L.Info("juz received signal", zap.Any("signal", sig))
g.Info("juz received signal", zap.Any("signal", sig))
},
}

@ -17,7 +17,6 @@ package cmd
import (
"os"
"os/signal"
"strings"
"syscall"
"github.com/mafanr/juz/misc"
@ -36,9 +35,8 @@ var trafficCmd = &cobra.Command{
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
misc.InitConfig("juz.conf")
misc.Conf.Common.LogLevel = strings.ToLower(misc.Conf.Common.LogLevel)
g.InitLogger()
g.L.Info("Application version", zap.String("version", misc.Conf.Common.Version))
g.InitLogger(misc.Conf.Common.LogLevel)
g.Info("Application version", zap.String("version", misc.Conf.Common.Version))
p := &traffic.Traffic{}
p.Start()
@ -48,7 +46,7 @@ var trafficCmd = &cobra.Command{
signal.Notify(chSig, syscall.SIGINT, syscall.SIGTERM)
sig := <-chSig
g.L.Info("juz received signal", zap.Any("signal", sig))
g.Info("juz received signal", zap.Any("signal", sig))
},
}

@ -1,12 +1,13 @@
common:
version: 0.0.1
loglevel: warn
loglevel: info
admintoken: "juz.io"
api:
port: "8081"
serverid: 1
manage:
port: "8089"

@ -129,12 +129,12 @@ func InitMysql() {
Conf.Mysql.Addr, Conf.Mysql.Port, Conf.Mysql.Database)
g.DB, err = sqlx.Open("mysql", sqlConn)
if err != nil {
g.L.Fatal("init mysql error", zap.Error(err))
g.Fatal("init mysql error", zap.Error(err))
}
// 测试db是否正常
err = g.DB.Ping()
if err != nil {
g.L.Fatal("init mysql, ping error", zap.Error(err))
g.Fatal("init mysql, ping error", zap.Error(err))
}
}

@ -29,7 +29,7 @@ func (t *Traffic) loadAll() {
strategies := make([]*misc.Strategy, 0)
err := g.DB.Select(&strategies, "select * from strategy")
if err != nil {
g.L.Fatal("load strategies error!", zap.Error(err))
g.Fatal("load strategies error!", zap.Error(err))
}
for _, s := range strategies {
@ -53,7 +53,7 @@ func (t *Traffic) loadUpdated() {
query := fmt.Sprintf("select * from strategy where modify_date >= '%s'", lastT)
err := g.DB.Select(&strategies, query)
if err != nil {
g.L.Error("load strategies error!", zap.Error(err), zap.String("query", query))
g.Error("load strategies error!", zap.Error(err), zap.String("query", query))
return
}

@ -33,7 +33,7 @@ func (t *Traffic) Start() {
}
func (t *Traffic) Shutdown() {
g.L.Info("shutdown tfe..")
g.Info("shutdown tfe..")
}
type RateLimiter struct{}
@ -49,20 +49,20 @@ func (t *Traffic) startRpcServer() {
server := rpc.NewServer()
err := server.Register(rl)
if err != nil {
g.L.Fatal("register error", zap.Error(err))
g.Fatal("register error", zap.Error(err))
}
g.L.Info("Listen tcp on port", zap.String("port", misc.Conf.Traffic.Port))
g.Info("Listen tcp on port", zap.String("port", misc.Conf.Traffic.Port))
l, err := net.Listen("tcp", ":"+misc.Conf.Traffic.Port)
if err != nil {
g.L.Fatal("listen error", zap.Error(err))
g.Fatal("listen error", zap.Error(err))
}
go func() {
for {
conn, err := l.Accept()
if err != nil {
g.L.Error("accept error", zap.Error(err))
g.Error("accept error", zap.Error(err))
continue
}
server.ServeConn(conn)

Loading…
Cancel
Save