pull/633/head
Windfarer 4 years ago
parent 153e47565d
commit e74fa32f66
  1. 8
      README.md
  2. 52
      docs/blademaster-quickstart.md
  3. 52
      docs/cache-mc.md
  4. 52
      docs/cache-redis.md
  5. 52
      docs/database-mysql-orm.md
  6. 52
      docs/database-mysql.md
  7. 2
      docs/index.html
  8. 3
      docs/ut-testcli.md
  9. 5
      docs/warden-mid.md
  10. 6
      docs/warden-pb.md
  11. 5
      docs/warden-resolver.md
  12. 6
      docs/warden.md

@ -20,7 +20,7 @@ Kratos是[bilibili](https://www.bilibili.com)开源的一套Go微服务框架,
* GRPC Warden:基于官方gRPC开发,集成[discovery](https://github.com/bilibili/discovery)服务发现,并融合P2C负载均衡; * GRPC Warden:基于官方gRPC开发,集成[discovery](https://github.com/bilibili/discovery)服务发现,并融合P2C负载均衡;
* Cache:优雅的接口化设计,非常方便的缓存序列化,推荐结合代理模式[overlord](https://github.com/bilibili/overlord); * Cache:优雅的接口化设计,非常方便的缓存序列化,推荐结合代理模式[overlord](https://github.com/bilibili/overlord);
* Database:集成MySQL/HBase/TiDB,添加熔断保护和统计支持,可快速发现数据层压力; * Database:集成MySQL/HBase/TiDB,添加熔断保护和统计支持,可快速发现数据层压力;
* Config:方便易用的[paladin sdk](https://windfarer.github.io/kratos/#/config),可配合远程配置中心,实现配置版本管理和更新; * Config:方便易用的[paladin sdk](https://go-kratos.github.io/kratos/#/config),可配合远程配置中心,实现配置版本管理和更新;
* Log:类似[zap](https://github.com/uber-go/zap)的field实现高性能日志库,并结合log-agent实现远程日志管理; * Log:类似[zap](https://github.com/uber-go/zap)的field实现高性能日志库,并结合log-agent实现远程日志管理;
* Trace:基于opentracing,集成了全链路trace支持(gRPC/HTTP/MySQL/Redis/Memcached); * Trace:基于opentracing,集成了全链路trace支持(gRPC/HTTP/MySQL/Redis/Memcached);
* Kratos Tool:工具链,可快速生成标准项目,或者通过Protobuf生成代码,非常便捷使用gRPC、HTTP、swagger文档; * Kratos Tool:工具链,可快速生成标准项目,或者通过Protobuf生成代码,非常便捷使用gRPC、HTTP、swagger文档;
@ -50,12 +50,12 @@ go build
打开浏览器访问:[http://localhost:8000/kratos-demo/start](http://localhost:8000/kratos-demo/start),你会看到输出了`Golang 大法好 !!!` 打开浏览器访问:[http://localhost:8000/kratos-demo/start](http://localhost:8000/kratos-demo/start),你会看到输出了`Golang 大法好 !!!`
[快速开始](https://windfarer.github.io/kratos/#/quickstart) [kratos工具](https://windfarer.github.io/kratos/#/kratos-tool) [快速开始](https://go-kratos.github.io/kratos/#/quickstart) [kratos工具](https://go-kratos.github.io/kratos/#/kratos-tool)
## Documentation ## Documentation
> [简体中文](https://windfarer.github.io/kratos) > [简体中文](https://go-kratos.github.io/kratos)
> [FAQ](https://windfarer.github.io/kratos/#/FAQ) > [FAQ](https://go-kratos.github.io/kratos/#/FAQ)
## License ## License
Kratos is under the MIT license. See the [LICENSE](./LICENSE) file for details. Kratos is under the MIT license. See the [LICENSE](./LICENSE) file for details.

@ -1,56 +1,6 @@
# 准备工作
推荐使用[kratos工具](kratos-tool.md)快速生成项目,如我们生成一个叫`kratos-demo`的项目。目录结构如下:
```
├── CHANGELOG.md
├── OWNERS
├── README.md
├── api
   ├── api.bm.go
   ├── api.pb.go
   ├── api.proto
   └── client.go
├── cmd
   ├── cmd
   └── main.go
├── configs
   ├── application.toml
   ├── db.toml
   ├── grpc.toml
   ├── http.toml
   ├── memcache.toml
   └── redis.toml
├── go.mod
├── go.sum
├── internal
   ├── dao
     ├── dao.bts.go
     ├── dao.go
     ├── db.go
     ├── mc.cache.go
     ├── mc.go
     └── redis.go
   ├── di
     ├── app.go
     ├── wire.go
     └── wire_gen.go
   ├── model
     └── model.go
   ├── server
     ├── grpc
       └── server.go
     └── http
     └── server.go
   └── service
   └── service.go
└── test
└── docker-compose.yaml
```
# 路由 # 路由
创建项目成功后,进入`internal/server/http`目录下,打开`http.go`文件,其中有默认生成的`blademaster`模板。其中: 进入`internal/server/http`目录下,打开`http.go`文件,其中有默认生成的`blademaster`模板。其中:
```go ```go
engine = bm.DefaultServer(hc.Server) engine = bm.DefaultServer(hc.Server)

@ -1,58 +1,8 @@
# 准备工作
推荐使用[kratos工具](kratos-tool.md)快速生成项目,如我们生成一个叫`kratos-demo`的项目。目录结构如下:
```
├── CHANGELOG.md
├── OWNERS
├── README.md
├── api
   ├── api.bm.go
   ├── api.pb.go
   ├── api.proto
   └── client.go
├── cmd
   ├── cmd
   └── main.go
├── configs
   ├── application.toml
   ├── db.toml
   ├── grpc.toml
   ├── http.toml
   ├── memcache.toml
   └── redis.toml
├── go.mod
├── go.sum
├── internal
   ├── dao
     ├── dao.bts.go
     ├── dao.go
     ├── db.go
     ├── mc.cache.go
     ├── mc.go
     └── redis.go
   ├── di
     ├── app.go
     ├── wire.go
     └── wire_gen.go
   ├── model
     └── model.go
   ├── server
     ├── grpc
       └── server.go
     └── http
     └── server.go
   └── service
   └── service.go
└── test
└── docker-compose.yaml
```
# 开始使用 # 开始使用
## 配置 ## 配置
创建项目成功后,进入项目中的configs目录,打开memcache.toml,我们可以看到: 进入项目中的configs目录,打开memcache.toml,我们可以看到:
```toml ```toml
[Client] [Client]

@ -1,58 +1,8 @@
# 准备工作
推荐使用[kratos工具](kratos-tool.md)快速生成项目,如我们生成一个叫`kratos-demo`的项目。目录结构如下:
```
├── CHANGELOG.md
├── OWNERS
├── README.md
├── api
   ├── api.bm.go
   ├── api.pb.go
   ├── api.proto
   └── client.go
├── cmd
   ├── cmd
   └── main.go
├── configs
   ├── application.toml
   ├── db.toml
   ├── grpc.toml
   ├── http.toml
   ├── memcache.toml
   └── redis.toml
├── go.mod
├── go.sum
├── internal
   ├── dao
     ├── dao.bts.go
     ├── dao.go
     ├── db.go
     ├── mc.cache.go
     ├── mc.go
     └── redis.go
   ├── di
     ├── app.go
     ├── wire.go
     └── wire_gen.go
   ├── model
     └── model.go
   ├── server
     ├── grpc
       └── server.go
     └── http
     └── server.go
   └── service
   └── service.go
└── test
└── docker-compose.yaml
```
# 开始使用 # 开始使用
## 配置 ## 配置
创建项目成功后,进入项目中的configs目录,打开redis.toml,我们可以看到: 进入项目中的configs目录,打开redis.toml,我们可以看到:
```toml ```toml
[Client] [Client]

@ -1,58 +1,8 @@
# 准备工作
推荐使用[kratos工具](kratos-tool.md)快速生成项目,如我们生成一个叫`kratos-demo`的项目。目录结构如下:
```
├── CHANGELOG.md
├── OWNERS
├── README.md
├── api
   ├── api.bm.go
   ├── api.pb.go
   ├── api.proto
   └── client.go
├── cmd
   ├── cmd
   └── main.go
├── configs
   ├── application.toml
   ├── db.toml
   ├── grpc.toml
   ├── http.toml
   ├── memcache.toml
   └── redis.toml
├── go.mod
├── go.sum
├── internal
   ├── dao
     ├── dao.bts.go
     ├── dao.go
     ├── db.go
     ├── mc.cache.go
     ├── mc.go
     └── redis.go
   ├── di
     ├── app.go
     ├── wire.go
     └── wire_gen.go
   ├── model
     └── model.go
   ├── server
     ├── grpc
       └── server.go
     └── http
     └── server.go
   └── service
   └── service.go
└── test
└── docker-compose.yaml
```
# 开始使用 # 开始使用
## 配置 ## 配置
创建项目成功后,进入项目中的configs目录,mysql.toml,我们可以看到: 进入项目中的configs目录,mysql.toml,我们可以看到:
```toml ```toml
[demo] [demo]

@ -1,58 +1,8 @@
# 准备工作
推荐使用[kratos工具](kratos-tool.md)快速生成项目,如我们生成一个叫`kratos-demo`的项目。目录结构如下:
```
├── CHANGELOG.md
├── OWNERS
├── README.md
├── api
   ├── api.bm.go
   ├── api.pb.go
   ├── api.proto
   └── client.go
├── cmd
   ├── cmd
   └── main.go
├── configs
   ├── application.toml
   ├── db.toml
   ├── grpc.toml
   ├── http.toml
   ├── memcache.toml
   └── redis.toml
├── go.mod
├── go.sum
├── internal
   ├── dao
     ├── dao.bts.go
     ├── dao.go
     ├── db.go
     ├── mc.cache.go
     ├── mc.go
     └── redis.go
   ├── di
     ├── app.go
     ├── wire.go
     └── wire_gen.go
   ├── model
     └── model.go
   ├── server
     ├── grpc
       └── server.go
     └── http
     └── server.go
   └── service
   └── service.go
└── test
└── docker-compose.yaml
```
# 开始使用 # 开始使用
## 配置 ## 配置
创建项目成功后,进入项目中的configs目录,mysql.toml,我们可以看到: 进入项目中的configs目录,mysql.toml,我们可以看到:
```toml ```toml
[demo] [demo]

@ -13,6 +13,8 @@
<script> <script>
window.$docsify = { window.$docsify = {
loadSidebar: true, loadSidebar: true,
auto2top: true,
autoHeader: true,
name: 'go-kratos/kratos', name: 'go-kratos/kratos',
repo: 'https://github.com/go-kratos/kratos' repo: 'https://github.com/go-kratos/kratos'
} }

@ -148,7 +148,4 @@ func TestMain(m *testing.M) {
``` ```
## 注意 ## 注意
因为启动mysql容器较为缓慢,健康检测的机制会重试3次,每次暂留5秒钟,基本在10s内mysql就能从creating到服务正常启动! 因为启动mysql容器较为缓慢,健康检测的机制会重试3次,每次暂留5秒钟,基本在10s内mysql就能从creating到服务正常启动!
当然你也可以在使用 testcli 时加上 --nodown,使其不用每次跑都新建容器,只在第一次跑的时候会初始化容器,后面都进行复用,这样速度会快很多。 当然你也可以在使用 testcli 时加上 --nodown,使其不用每次跑都新建容器,只在第一次跑的时候会初始化容器,后面都进行复用,这样速度会快很多。
成功启动后就欢乐奔放的玩耍吧~ Good Lucky!

@ -368,4 +368,7 @@ func New(svc *service.Service) *warden.Server {
# 扩展阅读 # 扩展阅读
[warden快速开始](warden-quickstart.md) [warden基于pb生成](warden-pb.md) [warden负载均衡](warden-balancer.md) [warden服务发现](warden-resolver.md) [warden快速开始](warden-quickstart.md)
[warden基于pb生成](warden-pb.md)
[warden负载均衡](warden-balancer.md)
[warden服务发现](warden-resolver.md)

@ -40,5 +40,9 @@ func (s *Service) SayHelloURL(ctx context.Context, req *pb.HelloReq) (reply *pb.
# 扩展阅读 # 扩展阅读
[warden快速开始](warden-quickstart.md) [warden拦截器](warden-mid.md) [warden负载均衡](warden-balancer.md) [warden服务发现](warden-resolver.md) [warden快速开始](warden-quickstart.md)
[warden拦截器](warden-mid.md)
[warden负载均衡](warden-balancer.md)
[warden服务发现](warden-resolver.md)

@ -248,4 +248,7 @@ etcd默认的全局keyPrefix为kratos_etcd,当该keyPrefix与项目中其他keyP
# 扩展阅读 # 扩展阅读
[warden快速开始](warden-quickstart.md) [warden拦截器](warden-mid.md) [warden基于pb生成](warden-pb.md) [warden负载均衡](warden-balancer.md) [warden快速开始](warden-quickstart.md)
[warden拦截器](warden-mid.md)
[warden基于pb生成](warden-pb.md)
[warden负载均衡](warden-balancer.md)

@ -33,5 +33,9 @@ gRPC暴露了两个拦截器接口,分别是:
# 扩展阅读 # 扩展阅读
[warden快速开始](warden-quickstart.md) [warden拦截器](warden-mid.md) [warden负载均衡](warden-balancer.md) [warden基于pb生成](warden-pb.md) [warden服务发现](warden-resolver.md) [warden快速开始](warden-quickstart.md)
[warden拦截器](warden-mid.md)
[warden负载均衡](warden-balancer.md)
[warden基于pb生成](warden-pb.md)
[warden服务发现](warden-resolver.md)

Loading…
Cancel
Save