From 77e23ad65d689cb98cca7b15b52b8590ab3fb45f Mon Sep 17 00:00:00 2001 From: kevin Date: Thu, 27 Aug 2020 22:54:18 +0800 Subject: [PATCH] add quick example --- doc/images/shorturl-arch.png | Bin 0 -> 120914 bytes doc/shorturl.md | 182 +++++++++++++++++++++ readme.md | 1 + tools/goctl/goctl.go | 10 +- tools/goctl/model/sql/example/generator.sh | 4 +- tools/goctl/model/sql/gen/error.go | 4 +- tools/goctl/model/sql/gen/gen.go | 2 +- tools/goctl/model/sql/template/delete.go | 1 + tools/goctl/model/sql/template/errors.go | 5 +- 9 files changed, 194 insertions(+), 15 deletions(-) create mode 100644 doc/images/shorturl-arch.png create mode 100644 doc/shorturl.md diff --git a/doc/images/shorturl-arch.png b/doc/images/shorturl-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..160b0b921f583ca92eed77a1d17a91f0244129c8 GIT binary patch literal 120914 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 AdH?_b literal 0 HcmV?d00001 diff --git a/doc/shorturl.md b/doc/shorturl.md new file mode 100644 index 00000000..592c1297 --- /dev/null +++ b/doc/shorturl.md @@ -0,0 +1,182 @@ +# 使用go-zero从0到1快速构建高并发的短链服务 + +## 0. 什么是短链服务? + +短链服务就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。 + +写此短链服务是为了从整体上演示go-zero构建完整微服务的过程,算法和实现细节尽可能简化了,所以这不是一个高阶的短链服务。 + +## 1. 短链微服务架构图 + +![架构图](images/shorturl-arch.png) + +## 2. 创建工作目录并初始化go.mod + +* 创建工作目录`shorturl` +* 在`shorturl`目录下执行`go mod init shorturl`初始化`go.mod` + +## 3. 编写API Gateway代码 + +* 通过goctl生成`shorturl.api`并编辑,为了简洁,去除了文件开头的`info`,代码如下: + + ```go + type ( + shortenReq struct { + url string `form:"url"` + } + + shortenResp struct { + shortUrl string `json:"shortUrl"` + } + ) + + type ( + expandReq struct { + key string `form:"key"` + } + + expandResp struct { + url string `json:"url"` + } + ) + + service shorturl-api { + @server( + handler: ShortenHandler + ) + get /shorten(shortenReq) returns(shortenResp) + + @server( + handler: ExpandHandler + ) + get /expand(expandReq) returns(expandResp) + } + ``` + + type用法和go一致,service用来定义get/post/head/delete等api请求,解释如下: + + * `service shorturl-api {`这一行定义了service名字 + * `@server`部分用来定义server端用到的属性 + * `handler`定义了服务端handler名字 + * `get /shorten(shortenReq) returns(shortenResp)`定义了get方法的路由、请求参数、返回参数等 + +* 使用goctl生成API Gateway代码 + + ```shell + goctl api go -api shorturl.api -dir api + ``` + + 生成的文件结构如下: + + ``` + . + ├── api + │   ├── etc + │   │   └── shorturl-api.yaml // 配置文件 + │   ├── internal + │   │   ├── config + │   │   │   └── config.go // 定义配置 + │   │   ├── handler + │   │   │   ├── expandhandler.go // 实现expandHandler + │   │   │   ├── routes.go // 定义路由处理 + │   │   │   └── shortenhandler.go // 实现shortenHandler + │   │   ├── logic + │   │   │   ├── expandlogic.go // 实现ExpandLogic + │   │   │   └── shortenlogic.go // 实现ShortenLogic + │   │   ├── svc + │   │   │   └── servicecontext.go // 定义ServiceContext + │   │   └── types + │   │   └── types.go // 定义请求、返回结构体 + │   └── shorturl.go // main入口定义 + ├── go.mod + ├── go.sum + └── shorturl.api + ``` + +* 启动API Gateway服务,默认侦听在8888端口 + + ```shell + go run api/shorturl.go -f api/etc/shorturl-api.yaml + ``` + +* 测试API Gateway服务 + + ```shell + curl -i "http://localhost:8888/shorten?url=a" + ``` + + 返回如下: + + ```http + HTTP/1.1 200 OK + Content-Type: application/json + Date: Thu, 27 Aug 2020 14:31:39 GMT + Content-Length: 15 + + {"shortUrl":""} + ``` + +* 可以修改`internal/svc/servicecontext.go`来传递服务依赖(如果需要) +* 实现逻辑可以修改`internal/logic`下的对应文件 + +## 4. 编写shorten/expand rpc服务(未完) + +## 5. 定义数据库表结构 + +* shorturl下创建rpc/model目录:`mkdir -p rpc/model` +* 在roc/model目录下编写创建shorturl表的sql文件`shorturl.sql`,如下: + + ```sql + CREATE TABLE `shorturl` + ( + `id` bigint(10) NOT NULL AUTO_INCREMENT, + `key` varchar(255) NOT NULL DEFAULT '' COMMENT 'shorten key', + `url` varchar(255) DEFAULT '' COMMENT 'original url', + PRIMARY KEY(`id`), + UNIQUE KEY `key_index`(`key`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + ``` + +## 6. 自动生成CRUD+cache代码 + +* 在`rpc/model`目录下执行如下命令生成CRUD+cache代码,`-c`表示使用`redis cache` + + ```shell + goctl model mysql ddl -c -src shorturl.sql -dir . + ``` + + 生成后的文件结构如下: + + ``` + . + ├── api + │   ├── etc + │   │   └── shorturl-api.yaml + │   ├── internal + │   │   ├── config + │   │   │   └── config.go + │   │   ├── handler + │   │   │   ├── expandhandler.go + │   │   │   ├── routes.go + │   │   │   └── shortenhandler.go + │   │   ├── logic + │   │   │   ├── expandlogic.go + │   │   │   └── shortenlogic.go + │   │   ├── svc + │   │   │   └── servicecontext.go + │   │   └── types + │   │   └── types.go + │   └── shorturl.go + ├── go.mod + ├── go.sum + ├── rpc + │   └── model + │   ├── shorturl.sql + │   ├── shorturlmodel.go // CRUD+cache代码 + │   └── vars.go // 定义常量和变量 + ├── shorturl.api + └── shorturl.sql + ``` + +## 未完待续 + diff --git a/readme.md b/readme.md index 7106b5c3..0f532f89 100644 --- a/readme.md +++ b/readme.md @@ -185,6 +185,7 @@ go get -u github.com/tal-tech/go-zero ## 8. 文档 (逐步完善中) +* [从0到1快速构建一个高并发的微服务系统](doc/shorturl.md) * [goctl使用帮助](doc/goctl.md) * [关键字替换和敏感词过滤工具](doc/keywords.md) diff --git a/tools/goctl/goctl.go b/tools/goctl/goctl.go index 3a1bf3c3..287b35da 100644 --- a/tools/goctl/goctl.go +++ b/tools/goctl/goctl.go @@ -194,11 +194,11 @@ var ( Subcommands: []cli.Command{ { Name: "mysql", - Usage: `generate mysql model"`, + Usage: `generate mysql model`, Subcommands: []cli.Command{ { Name: "ddl", - Usage: `generate mysql model from ddl"`, + Usage: `generate mysql model from ddl`, Flags: []cli.Flag{ cli.StringFlag{ Name: "src, s", @@ -221,15 +221,15 @@ var ( }, { Name: "datasource", - Usage: `generate model from datasource"`, + Usage: `generate model from datasource`, Flags: []cli.Flag{ cli.StringFlag{ Name: "url", - Usage: `the data source of database,like "root:password@tcp(127.0.0.1:3306)/database"`, + Usage: `the data source of database,like "root:password@tcp(127.0.0.1:3306)/database`, }, cli.StringFlag{ Name: "table, t", - Usage: `source table,tables separated by commas,like "user,course"`, + Usage: `source table,tables separated by commas,like "user,course`, }, cli.BoolFlag{ Name: "cache, c", diff --git a/tools/goctl/model/sql/example/generator.sh b/tools/goctl/model/sql/example/generator.sh index 2e121423..fb43430b 100644 --- a/tools/goctl/model/sql/example/generator.sh +++ b/tools/goctl/model/sql/example/generator.sh @@ -1,7 +1,7 @@ #!/bin/bash # generate model with cache from ddl - goctl model mysql ddl -src="./sql/user.sql" -dir="./sql/model" -c=true +goctl model mysql ddl -src="./sql/user.sql" -dir="./sql/model" -c # generate model with cache from data source - goctl model mysql datasource -url="user:password@tcp(127.0.0.1:3306)/database" -table="table1,table2" -dir="./model" \ No newline at end of file +goctl model mysql datasource -url="user:password@tcp(127.0.0.1:3306)/database" -table="table1,table2" -dir="./model" \ No newline at end of file diff --git a/tools/goctl/model/sql/gen/error.go b/tools/goctl/model/sql/gen/error.go index 95b730bd..be9cf947 100644 --- a/tools/goctl/model/sql/gen/error.go +++ b/tools/goctl/model/sql/gen/error.go @@ -2,6 +2,4 @@ package gen import "errors" -var ( - ErrCircleQuery = errors.New("circle query with other fields") -) +var ErrCircleQuery = errors.New("circle query with other fields") diff --git a/tools/goctl/model/sql/gen/gen.go b/tools/goctl/model/sql/gen/gen.go index 45fc8656..e103ee78 100644 --- a/tools/goctl/model/sql/gen/gen.go +++ b/tools/goctl/model/sql/gen/gen.go @@ -82,7 +82,7 @@ func (g *defaultGenerator) Start(withCache bool) error { } } // generate error file - filename := filepath.Join(dirAbs, "error.go") + filename := filepath.Join(dirAbs, "vars.go") if !util.FileExists(filename) { err = ioutil.WriteFile(filename, []byte(template.Error), os.ModePerm) if err != nil { diff --git a/tools/goctl/model/sql/template/delete.go b/tools/goctl/model/sql/template/delete.go index 1830043e..72d5db36 100644 --- a/tools/goctl/model/sql/template/delete.go +++ b/tools/goctl/model/sql/template/delete.go @@ -6,6 +6,7 @@ func (m *{{.upperStartCamelObject}}Model) Delete({{.lowerStartCamelPrimaryKey}} if err!=nil{ return err }{{end}} + {{.keys}} _, err {{if .containsIndexCache}}={{else}}:={{end}} m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) { query := ` + "`" + `delete from ` + "` +" + ` m.table + ` + " `" + ` where {{.originalPrimaryKey}} = ?` + "`" + ` diff --git a/tools/goctl/model/sql/template/errors.go b/tools/goctl/model/sql/template/errors.go index a24ff3fa..f35e8942 100644 --- a/tools/goctl/model/sql/template/errors.go +++ b/tools/goctl/model/sql/template/errors.go @@ -4,8 +4,5 @@ var Error = `package model import "github.com/tal-tech/go-zero/core/stores/sqlx" -var ( - ErrNotFound = sqlx.ErrNotFound -) - +var ErrNotFound = sqlx.ErrNotFound `