01-基础

未匹配的标注

安装

  • ubuntu 系统

go 环境

国内代理

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

protoc 配置

  1. 下载安装文件
    # 解压,进入文件夹
    ./configure
    make
    make install

protoc-gen-go 配置

$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

karatos 命令安装

go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

wire 安装

go install github.com/google/wire/cmd/wire

创建项目

kratos new helloworld

protoc 重新生成

make api

目录介绍

.
├── Dockerfile 容器线上部署,两部构建 1,编译 2,运行镜像
├── LICENSE
├── Makefile  命令配置,定制命令
├── README.md 说明文档
├── api
│   └── helloworld
│       └── v1 【api 版本号】
│           ├── error_reason.pb.go 【编译生成的文件】
│           ├── error_reason.proto 【定义接口】
│           ├── greeter.pb.go
│           ├── greeter.proto
│           ├── greeter_grpc.pb.go
│           └── greeter_http.pb.go
├── app
│   └── user
│       ├── Dockerfile
│       ├── Makefile
│       ├── cmd 
│       │   └── user
│       │       ├── main.go 
│       │       ├── wire.go 
│       │       └── wire_gen.go
│       ├── configs
│       │   └── config.yaml
│       ├── internal
│       │   ├── biz
│       │   │   ├── biz.go
│       │   │   └── greeter.go
│       │   ├── conf
│       │   │   ├── conf.pb.go
│       │   │   └── conf.proto
│       │   ├── data
│       │   │   ├── data.go
│       │   │   └── greeter.go
│       │   ├── server
│       │   │   ├── grpc.go
│       │   │   ├── http.go
│       │   │   └── server.go
│       │   └── service
│       │       ├── greeter.go
│       │       └── service.go
│       └── openapi.yaml
├── cmd 【入口】
│   └── helloworld
│       ├── main.go 【运行入口,wireApp 调用的是 wire_gen.go 文件里面的函数】
│       ├── wire.go 【依赖注入,辅助文件】
│       └── wire_gen.go
├── configs 【配置文件】
│   └── config.yaml 【端口号,超时时间,启动时候加载】
├── go.mod
├── go.sum
├── internal 【业务逻辑】
│   ├── biz 【3, 业务场景】
│   │   ├── README.md
│   │   ├── biz.go
│   │   └── greeter.go 【存储接口】
│   ├── conf 【配置,对应顶层目录配置】
│   │   ├── conf.pb.go
│   │   └── conf.proto 【解析配置文件】
│   ├── data 【4, 实现接口,逻辑代码】
│   │   ├── README.md
│   │   ├── data.go 【访问数据库,缓存,第三方服务】
│   │   └── greeter.go
│   ├── server 【1 最顶层,挂入 service】
│   │   ├── grpc.go 
│   │   ├── http.go 【初始化,读取配置,端口】
│   │   └── server.go
│   └── service 【2 对应 api 目录】
│       ├── README.md
│       ├── greeter.go 【protoc 生成的方法】
│       └── service.go
├── openapi.yaml 文档
└── third_party 【proto 依赖的内容】
    ├── README.md
    ├── errors
    │   └── errors.proto
    ├── google
    │   ├── api
    │   │   ├── annotations.proto
    │   │   ├── client.proto
    │   │   ├── field_behavior.proto
    │   │   ├── http.proto
    │   │   └── httpbody.proto
    │   └── protobuf
    │       └── descriptor.proto
    └── validate
        ├── README.md
        └── validate.proto

入口文件

  • 路径
    /cmd/helloworld/main.go
  • main 包
  • 初始化 log 配置
  • 加载配置
  • 初始化整个应用
  • 运行应用

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~