实现了eureka客户端但最终没有帮远程调用啊,只是下了git.imooc.com上的包
来源:10-10 基于服务发现负载均衡的goRpc客户端编码实践
潇洒哥gogo
2020-07-11
老师您好:
我把课程学完了,本以为最后在resk中调用infra或account中应该是远程调用(http或rpc),可是代码只是引用了远程的包而已,并没有调用远程的服务,这块需要怎么实现?
看了第10章教程是实现了eureka客户端,但是resk中好像并没有改成远程调用
1回答
-
枫荇
2020-07-16
同学,您好!
首先将account服务按照resk暴露http api和account的方法暴露网络接口。
复制account工程中的accountService接口定义和dto,放到resk工程services/account包下面,也就是将account工程中的services包中的go文件复制到resk工程的services/account目录下面。
在resk工程下定义一个client的包,将account暴露的接口,按照accountService接口定义的规范,使用rpc client的方式封装一个accountService接口的实现accountClient。将这些实现放到client包中。记得在实现go文件中使用init函数实例化你的实现:
```
var once sync.Once
func init() {
once.Do(func() {
//as := &accountClient{}
services.AccountService = new(accountClient)
})
}```
4. 在resk工程中移除account 包导入依赖(从go.mod中删除)
5. 试运行,解决编译问题。
00
相似问题