• mirco新建proto流程


    折腾了一段时间,现在终于对mirco有点了解了,于是就记录下mirco新建proto的流程

    1、新建服务

    micro new --type "srv" 项目路径

    如:micro new --type "srv" sss/GetImageCd

    接下来会输出一堆东西,记录下这两行,待会儿会用到

    2、进入到proto目录,编写protobuf数据格式

     如果不想用默认方法,可以把这个Call改成自己想要的方法名

     

     定义好Request和Response后,执行之前记录下来的那两行命令

    cd /opt/golangProject/src/sss/GetImageCd
    protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/GetImageCd/GetImageCd.proto

    执行成功后,会生成两个文件

    3、在新建的服务的根目录下,执行go mod init(没有用go moudle管理的话,可以忽略3,4步)

    修改go.mod,新加这两行,不然的话无法调用

    4、进入到proto目录,执行go mod init,如果不执行这步,那么web端将无法调用服务端的protobuf

    5、如果遇到proto与服务定义的结构体冲突了的话,那么取另一个名就好了,然后对应修改下面的文件

    别名冲突

     修改为

     对应修改下面的文件

    src/sss/GetImageCd/handler/GetImageCd.go

    src/sss/GetImageCd/subscriber/GetImageCd.go

    其实就是在服务根目录下,这些方法对应的调用文件

    6、编译服务

    go build main.go

    编译的时候,会出现以下报错

    # github.com/coreos/etcd/clientv3/balancer/picker
    ../../pkg/mod/github.com/coreos/etcd@v3.3.17+incompatible/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions
    ../../pkg/mod/github.com/coreos/etcd@v3.3.17+incompatible/clientv3/balancer/picker/roundrobin_balanced.go:55:54: undefined: balancer.PickOptions
    # github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
    ../../pkg/mod/github.com/coreos/etcd@v3.3.17+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:114:78: undefined: resolver.BuildOption
    ../../pkg/mod/github.com/coreos/etcd@v3.3.17+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:182:31: undefined: resolver.ResolveNowOption

    原因 grpc版本不对

    解决方法

    go mod edit -require=google.golang.org/grpc@v1.26.0

     go get -u -x google.golang.org/grpc@v1.26.0

    7、服务调用测试

  • 相关阅读:
    android界面横屏和竖屏的切换
    google 提供webrtc 的实例使用 turnserver的方式
    如何使官方提供的AppRTCDemo 运行在自己搭建的server(官方提供的apprtc)上(官方的server源码)
    android在全屏下第一次触摸屏幕没有触发事件
    ubuntu常用命令记录集
    python 一个包中的文件调用另外一个包文件 实例
    python-插入排序
    phantomjs submit click
    python socket.error: [Errno 10054] 解决方法
    python-快速排序,两种方法→易理解
  • 原文地址:https://www.cnblogs.com/zhp-king/p/13995000.html
Copyright © 2020-2023  润新知