# GoTree
## 特性
* 熔断
* fork 热更新
* rpc 通信(c50k)
* 定时器
* SQL 慢查询监控
* SQL 冗余监控
* 分层
* 强制垂直分库
* 基于 gseq 串行的全网日志
* 单元测试
* 督程
* 一致性哈希、主从、随机、均衡等负载方式
## 快速使用
1. 获取 gotree。
```
$ go get -u github.com/8treenet/gotree
```
2. 安装 gotree。
```
$ cd $GOPATH/src/github.com/8treenet/gotree/
$ go install
```
3. 创建 learning 项目。
```
$ gotree new learning
```
4. learning 项目数据库安装、数据库用户密码配置。使用 source 或工具安装 learning.sql。
```
$ mysql > source $GOPATH/src/learning/learning.sql
# 编辑 db 连接信息,Com = Order、用户名 = root、密码 = 123123、地址 = 127.0.0.1、端口 = 3306、数据库 = learning_order
# Order = "root:123123@tcp(127.0.0.1:3306)/learning_order?charset=utf8"
$ vi $GOPATH/src/learning/dao/conf/dev/db.conf
```
5. 启动 dao服务、 business 服务。
```
$ cd $GOPATH/src/learning/dao
$ go run main.go
$ command + t #开启新窗口
$ cd $GOPATH/src/learning/business
$ go run main.go
```
6. 模拟网关执行调用,请查看代码。 代码位于 $GOPATH/src/learning/business/unit/gateway_test.go
```
$ go test -v -count=1 -run TestUserRegister $GOPATH/src/learning/business/unit/gateway_test.go
$ go test -v -count=1 -run TestStore $GOPATH/src/learning/business/unit/gateway_test.go
$ go test -v -count=1 -run TestShopping $GOPATH/src/learning/business/unit/gateway_test.go
$ go test -v -count=1 -run TestUserOrder $GOPATH/src/learning/business/unit/gateway_test.go
```
7. qps 压测
```
# 每秒 1w 请求
$ go run $GOPATH/src/learning/business/unit/qps_press/main.go 10000
```
### github
mac 2018 单机双端压测
![image.png](https://static.studygolang.com/190521/b03344a44b1ddc8337c5d099633136a5.png)
有疑问加站长微信联系(非本文作者)