gRPC 的增删改查系列之cmd启动服务

1.路径src\cmd\server.go
2.启动服务cmd:

package cmd

import (
    "context"
    "database/sql"
    "flag"
    "fmt"
    v1 "goWebGin/api/service/v1"
    "goWebGin/server"
)

type Config struct {
    GRPCPort            string
    DataStoreDBHost     string
    DataStoreDBUser     string
    DataStoreDBPassword string
    DataStoreDBSchema   string
}

func RunServer() error {
    ctx := context.Background()
    var cfg Config
    flag.StringVar(&cfg.GRPCPort, "grpc-port", "", "gRPC port to bind")
    flag.StringVar(&cfg.DataStoreDBHost, "db-host", "", "db host")
    flag.StringVar(&cfg.DataStoreDBUser, "db-user", "", "db user")
    flag.StringVar(&cfg.DataStoreDBPassword, "db-password", "", "db password")
    flag.StringVar(&cfg.DataStoreDBSchema, "db-schema", "", "db schema")
    flag.Parse()
    param := "parseTime=true"
    dsnDB := fmt.Sprintf("%s:%s@tcp(%s)/%s?%s",
        cfg.DataStoreDBUser,
        cfg.DataStoreDBPassword,
        cfg.DataStoreDBHost,
        cfg.DataStoreDBSchema,
        param)
    db, err := sql.Open("mysql", dsnDB)
    if err != nil {
        return fmt.Errorf("数据库连接失败,%s", err)
    }
    defer func() {
        _ = db.Close()
    }()
    v1Api := v1.NewToDoServiceServer(db)
    //v1Api 实现了 proto 的ToDoServiceServer接口
    return server.RunServer(ctx, v1Api, cfg.GRPCPort)
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
一切皆自学
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!