GoTree - 分布式框架

8treenet · 2019-05-21 14:23:03 · 4145 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-05-21 14:23:03 的主题,其中的信息可能已经有所发展或是发生改变。

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


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4145 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传