• Sch0ng
    2021-08-12
    使用Pflag解析命令行参数,使用Viper解析配置文件,使用Cobra实现命令行框架。 复用优秀轮子省时省力。

    作者回复: 老哥,学的好认真呀,给点个赞!

    
    12
  • 党
    2022-01-27
    总结一下: 1:cobra = flag+启动流程管理 2: viper读取配置文件+flag参数 最后 反序列化出来一个配置struct实例 ps 最终代码里没有pflag包的事

    作者回复: 6666

    
    7
  • 宙斯
    2021-07-27
    有个疑问:flag和非选项参数数什么关系呢?

    作者回复: 比如:./iam-apiserver -c /etc/iam/iam-apiserver.yaml -c是flag。 /etc/iam/iam-apiserver是非选项参数。

    共 2 条评论
    7
  • 龍捲風
    2021-07-16
    想问下,关于golang的项目怎么实现优雅下线?注册中心可以将服务节点剔除,但关闭服务时怎么让已接收到请求可以做完呢?

    作者回复: net/http包有提供ShutDown方法。 第24讲:Web 服务:Web 服务核心功能有哪些,如何实现?有讲如何实现优雅关停。

    
    4
  • Geek_8efe79
    2022-04-18
    全是文字看着好心累,没有视频?

    作者回复: 后面考虑出个视频课程

    
    2
  • helloworld
    2021-07-16
    开发环境,测试环境,生产环境的配置文件是不同的,关于不同环境下读取配置文件,这块有什么好的最佳实践吗,是通过命令行参数指定不同环境的配置文件的方式好呢,还是通过系统环境变量来区分环境并读取对应配置文件好呢

    作者回复: 如果参数少,比如< 5个,可以在命令行参数指定。 如果参数 >=5个,最好在配置文件指定,好维护。 注意:5 不是标准答案,需要你来定。

    共 3 条评论
    2
  • Neroldy
    2021-07-15
    标志可以是“持久的”,这意味着该标志可用于它所分配的命令以及该命令下的每个子命令。 老师能再具体讲讲这个标志的持久化是什么意思吗?

    作者回复: 就是如果一个标志是“持久的”,那么子命令也可以使用父命令的标志。

    
    2
  • 我要去卖冰淇淋
    2022-10-27 来自广东
    老师我有个疑问.例如 我现在要在别的方法中引用yaml中配置的变量,但在代码中我没有发现global存配置文件的信息,难道只能 1。自己声明一个全局了存储,2 直接用 viper.GetString("xxx.xxx") 方式。 我在观察代码的时候 发现所有的初始化信息基本上都是在 启动之初处理好了。

    作者回复: 这个地方是个取舍,没有标准答案,完全可以根据自己的需求来; 建议变量都在初始化中,通过参数的方式进行传递,因为这样能做到有感知。但可能每次都加一个参数传递,觉得麻烦,也完全可以搞个全局变量,问题不大的。

    共 2 条评论
    1
  • czy
    2022-08-29 来自广东
    Viper读取配置部分第2种方法反序列化两个示例解释的很不清楚,过于晦涩了,不如用一个简单的例子,这两个例子是官方上的,就直接翻译搬过来了吧?也没有加一些解析。

    作者回复: 感谢反馈,我优化下

    
    
  • 雪峰
    2022-08-24 来自广东
    viper在容器中无法watch

    作者回复: 可以watch,需要改下文件的软连接。容器中,文件路径跟真实的路径不一样,具体你可以网上搜索,然后尝试下。

    
    