PARAMS这个参数干嘛用的

来源:11-5 基于Docker-compose与Traefik1.x的容器化部署演示

慕仰9495179

2020-08-03

图片描述
图片描述
图片描述
图片描述
我看代码中也没使用这几个参数,并且微服务启动没有这个设置的参数,报错的,怎么解决。删掉后面三个就可以启动,但页面全部都报404
图片描述

写回答

1回答

xiaomo

2020-08-04

同学你好,-e PARAMS功能是将命令行参数传递给docker的容器应用中,

比如在非容器化启动应用的方式: ./account --dbhost=xxxxx; 那么用docker来启动的话就是:docker run ... -e PARAMS="-dbhost=xxxxx"  ... account, 这样account这个容器就能接收到--dbhost这个命令行参数了。

按截图看的错误来看,似乎是--cachehost这个参数没有正确配置和解析?可以检查一下common/flags.go中是否包含了参数cachehost的定义,如:

package common

import "github.com/micro/cli"

// CustomFlags : 自定义命令行参数
var CustomFlags = []cli.Flag{
	cli.StringFlag{
		Name:  "dbhost",
		Value: "127.0.0.1",
		Usage: "database address",
	},
	cli.StringFlag{
		Name:  "mqhost",
		Value: "127.0.0.1",
		Usage: "mq(rabbitmq) address",
	},
	cli.StringFlag{
		Name:  "cachehost",
		Value: "127.0.0.1",
		Usage: "cache(redis) address",
	},
	cli.StringFlag{
		Name:  "cephhost",
		Value: "127.0.0.1",
		Usage: "ceph address",
	},
}

然后在service/apigw/handler/user.go里看看是否配置了解析:

func init() {
        //配置请求容量及qps
        bRate := ratelimit2.NewBucketWithRate(100, 1000)
        service := micro.NewService(
                micro.Flags(cmn.CustomFlags...),
                micro.WrapClient(ratelimit.NewClientWrapper(bRate, false)), //加入限流功能, false为不等待(超限即返回请求失败
)
                micro.WrapClient(hystrix.NewClientWrapper()),               // 加入熔断功能, 处理rpc调用失败的情况(cirucuit breaker)
        )
        // 初始化, 解析命令行参数等
        service.Init()
        // ...省略
}


0
1
慕仰9495179
啊这,我不知道common里面还有配置,因为视频上没说要这个配置,没注意去看,谢谢老师啦
2020-08-05
共1条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程