关闭
Hit
enter
to search or
ESC
to close
May I Suggest ?
#leanote #leanote blog #code #hello world
Mutepig's Blog
Home
Archives
Tags
Search
About Me
go-common
无
78
0
0
mut3p1g
`http`服务器运行起来发现报错,找不到远程的`RPC`,这个也比较正常,毕竟环境不一样。 ``` 开始创建:archive.service 的gorpc client,等待从discovery拉取节点:2020-11-16 09:50:05 失败创建:archive.service 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:50:15 开始创建:archive.service.dynamic 的gorpc client,等待从discovery拉取节点:2020-11-16 09:50:15 失败创建:archive.service.dynamic 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:50:25 开始创建:main.community.tag 的gorpc client,等待从discovery拉取节点:2020-11-16 09:50:25 失败创建:main.community.tag 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:50:35 开始创建:location.service 的gorpc client,等待从discovery拉取节点:2020-11-16 09:50:35 失败创建:location.service 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:50:45 开始创建:article.service 的gorpc client,等待从discovery拉取节点:2020-11-16 09:50:45 失败创建:article.service 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:50:55 开始创建:resource.service 的gorpc client,等待从discovery拉取节点:2020-11-16 09:50:55 失败创建:resource.service 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:51:05 开始创建:account.service.relation 的gorpc client,等待从discovery拉取节点:2020-11-16 09:51:05 失败创建:account.service.relation 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:51:15 开始创建:community.service.thumbup 的gorpc client,等待从discovery拉取节点:2020-11-16 09:51:15 失败创建:community.service.thumbup 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:51:25 开始创建:account.service.coupon 的gorpc client,等待从discovery拉取节点:2020-11-16 09:51:25 失败创建:account.service.coupon 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:51:35 开始创建:community.service.dm 的gorpc client,等待从discovery拉取节点:2020-11-16 09:51:35 失败创建:community.service.dm 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:51:45 开始创建:community.service.favorite 的gorpc client,等待从discovery拉取节点:2020-11-16 09:51:45 失败创建:community.service.favorite 的gorpc client,竟然从discovery拉取节点超时了:2020-11-16 09:51:55 warden client: dial discovery://default/push.service.broadcast?subset=50 error context deadline exceeded!panic: context deadline exceeded ``` 那么有俩思路,一个是去找找有没有实现对应`RPC`的代码,另一个就是删掉看看能不能跑起来。 那么先运行`discovery`节点,结果随便跑一个都报错了,那么看看是不是节点配置有问题。看看`library/naming/discovery/discovery.go`,发现节点被写死了,那么得换成我们本地的: ``` if c == nil { c = &Config{ //Nodes: []string{"discovery.bilibili.co", "api.bilibili.co"}, Nodes: []string{"0.0.0.0:7171"}, Key: "discovery", Secret: "discovery", } } ``` # 0x01 HTTP源码分析 代码目录在`app/interface/main/web`。从`cmd/main.go`入手,主要还是`service`的新建: ``` func main() { flag.Parse() if err := conf.Init(); err != nil { log.Error("conf.Init() error(%v)", err) panic(err) } log.Init(conf.Conf.Log) trace.Init(conf.Conf.Tracer) defer trace.Close() defer log.Close() log.Info("web-interface start") // ecode ecode.Init(conf.Conf.Ecode) //server init svr := service.New(conf.Conf) http.Init(conf.Conf, svr) ``` 进入`service.New`后注册了一堆`rpc`服务,也是之前报错的信息。先全部注释掉。 这样可以走进`http.Init`,但是上来还是注册了一个`rpc`,是认证用的,`appid=passport.service.identify`: ``` func Init(c *conf.Config, s *service.Service) { authSvr = auth.New(c.Auth) vfySvr = verify.New(c.Verify) webSvc = s cacheSvr = cache.New(store.NewMemcache(c.DegradeConfig.Memcache)) deg = cache.NewDegrader(c.DegradeConfig.Expire) // init outer router engine := bm.NewServer(c.HTTPServer) engine.Use(bm.Recovery(), bm.Logger(), bm.Trace(), bm.Mobile()) outerRouter(engine) internalRouter(engine) if err := engine.Start(); err != nil { log.Error("engine.Start error(%v)", err) panic(err) } } ``` 通过搜索`appid`,可以找到认证服务在`app/service/main/identify/cmd/main.go`,能够直接运行,但是没有注册服务的逻辑。 业务逻辑; ``` go-common/app/interface/bbq/app-bbq 用户登录 go-common/app/interface/main/account 用户操作 go-common/app/service/main/account 用户操作 go-common/app/service/main/account-recovery 用户操作 UserUnamePrefixErr ```
觉得不错,点个赞?
提交评论
Sign in
to leave a comment.
No Leanote account ?
Sign up now
.
0
条评论
More...
文章目录
No Leanote account ? Sign up now.