实现了eureka客户端但最终没有帮远程调用啊,只是下了git.imooc.com上的包

来源:10-10 基于服务发现负载均衡的goRpc客户端编码实践

潇洒哥gogo

2020-07-11

老师您好:

我把课程学完了,本以为最后在resk中调用infra或account中应该是远程调用(http或rpc),可是代码只是引用了远程的包而已,并没有调用远程的服务,这块需要怎么实现?

看了第10章教程是实现了eureka客户端,但是resk中好像并没有改成远程调用

写回答

1回答

枫荇

2020-07-16

同学,您好!

  1. 首先将account服务按照resk暴露http api和account的方法暴露网络接口。

  2. 复制account工程中的accountService接口定义和dto,放到resk工程services/account包下面,也就是将account工程中的services包中的go文件复制到resk工程的services/account目录下面。

  3. 在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. 试运行,解决编译问题。


0
0

仿微信抢红包 Golang实战多版本抢红包系统

Golang红包系统单体版+并发版+分布式+微服务版,四大金装版、超值必修课

582 学习 · 159 问题

查看课程