func startRPCService() {
service := micro.NewService(
micro.Name("go.micro.service.transfer"),
micro.RegisterTTL(time.Second*10),
micro.RegisterInterval(time.Second*5),
micro.Flags(common.CustomFlags...),
)
service.Init(
micro.Action(func(c *cli.Context) {
mqhost := c.String("mqhost")
if len(mqhost) > 0 {
log.Println("custom mq address: " + mqhost)
mq.UpdateRabbitHost(mqhost)
}
}),
)
/*******************************************/
//为什么要在transfer里面Init dbproxy,有什么讲究吗
/*******************************************/
dbproxy.Init(service)
if err := service.Run(); err != nil {
fmt.Println(err)
}
}
在filestore-server/service/dbproxy/client里面:
func Init(service micro.Service) {
//这里为什么要用transfer创建的service,好像直接一个空的NewService也可以?
//因为只需要Client呀?
dbCli = dbProto.NewDBProxyService("go.micro.service.dbproxy", service.Client())
}