oceanbase

Форк
0
80 строк · 2.4 Кб
1
/**
2
 * Copyright (c) 2021 OceanBase
3
 * OceanBase CE is licensed under Mulan PubL v2.
4
 * You can use this software according to the terms and conditions of the Mulan PubL v2.
5
 * You may obtain a copy of Mulan PubL v2 at:
6
 *          http://license.coscl.org.cn/MulanPubL-2.0
7
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
 * See the Mulan PubL v2 for more details.
11
 */
12

13
package main
14

15
import (
16
	"os"
17

18
	"github.com/pkg/errors"
19
	log "github.com/sirupsen/logrus"
20
	"github.com/spf13/cobra"
21
	"github.com/spf13/viper"
22

23
	"github.com/oceanbase/configserver/config"
24
	"github.com/oceanbase/configserver/logger"
25
	"github.com/oceanbase/configserver/server"
26
)
27

28
var (
29
	configserverCommand = &cobra.Command{
30
		Use:   "configserver",
31
		Short: "configserver is used to store and query ob rs_list",
32
		Long:  "configserver is used to store and query ob rs_list, used by observer, obproxy and other tools",
33
		Run: func(cmd *cobra.Command, args []string) {
34
			err := runConfigServer()
35
			if err != nil {
36
				log.WithField("args:", args).Errorf("start configserver failed: %v", err)
37
			}
38
		},
39
	}
40
)
41

42
func init() {
43
	configserverCommand.PersistentFlags().StringP("config", "c", "etc/config.yaml", "config file")
44
	_ = viper.BindPFlag("config", configserverCommand.PersistentFlags().Lookup("config"))
45
}
46

47
func main() {
48
	if err := configserverCommand.Execute(); err != nil {
49
		log.WithField("args", os.Args).Errorf("configserver execute failed %v", err)
50
	}
51
}
52

53
func runConfigServer() error {
54
	configFilePath := viper.GetString("config")
55
	configServerConfig, err := config.ParseConfigServerConfig(configFilePath)
56
	if err != nil {
57
		return errors.Wrap(err, "read and parse configserver config")
58
	}
59

60
	// init logger
61
	logger.InitLogger(logger.LoggerConfig{
62
		Level:      configServerConfig.Log.Level,
63
		Filename:   configServerConfig.Log.Filename,
64
		MaxSize:    configServerConfig.Log.MaxSize,
65
		MaxAge:     configServerConfig.Log.MaxAge,
66
		MaxBackups: configServerConfig.Log.MaxBackups,
67
		LocalTime:  configServerConfig.Log.LocalTime,
68
		Compress:   configServerConfig.Log.Compress,
69
	})
70

71
	// init config server
72
	configServer := server.NewConfigServer(configServerConfig)
73

74
	err = configServer.Run()
75
	if err != nil {
76
		return errors.Wrap(err, "start config server")
77
	}
78

79
	return nil
80
}
81

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.