• Tokamak
    2022-02-17
    在根据文章进行编码后, 运行程序的时候发现程序会一直卡在获取锁的地方。 调试了很久才发现是因为 EnvProvider 的Boot()中调用了MustMake, 会再一次获取锁, 会导致死锁。 死锁的原因是: main.go 中的Bind() 会先获取锁, 使用的是defer 释放锁, 在Bind() 中由于会调用Boot(), EnvProvider的Boot()中也会去获取锁, 导致再次获取锁时会失败,因此会卡住. 解决方法是: 将Bind()中的锁释放改为 hade.lock.Unlock() 直接释放,尽量让锁的占用时间最小。
    共 3 条评论
    7
  • qinsi
    2021-10-21
    12 factor的建议是配置存储在环境变量中,甚至都不建议使用配置文件。这里似乎是需要一个配置中心:启动容器的时候从配置中心拉取配置注入到容器的环境变量中,而容器中的应用只需要读取环境变量就好了。
    共 5 条评论
    2
  • 牛玉富
    2022-01-13
    看来,还是用yaml的多
    
    