MCPcopy Index your code
hub / github.com/EpochCloud/quick

github.com/EpochCloud/quick @0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1 ↗ · + Follow
86 symbols 231 edges 17 files 2 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

README

简介

quick是一款专为微服务架构定制的高性能网关
特点:
灰度发布
负载均衡
智能路由
熔断
轻量级
轻松任何基础架构,可以部署在云或者云内部部署,也可直接在物理机运行
跨语言,所有语言都可以使用
可作为分布式网关、微服务网关
...

首先运行confcenter


1、首先注册quick的配置信息
/quick_operation  :注册quick的配置
/gateway_configuration :需要注册的服务

运行quick

 在此步骤之前运行了confcenter并且注册了信息,方可进行下面步骤
  cd $GOPATH
  cd src/github.com/EpochCloud/quick
  go install 
  cd $GOPATH
  win 环境
  quick.exe -f ./src/quick/config/config.toml
  linux环境
  ./quick -f ./src/quick/config/config.toml

示例

注意由于本人能力有限,没有给出前端代码,所以下面一切测试均在postman中测试

1、运行confcenter并且注册quick的配置
    /gateway_configuration  //注册quick服务
    {
        "ip":"127.0.0.1",     //quick的外网地址
        "port":"8090",        //quick的外网端口
        "timeout":15,         //quick的平滑重启超时时间
        "loglevel":"debug",   //quick的日志级别
        "logpath":"D:/project/src/quick/logcatlog",  //quick打印日志的路径
        "bufpool":0,          //需要的缓存池数量,默认0
        "intranetip":"127.0.0.1",  //内网的ip
        "intranetport":"6060",     //内网的端口    
        "managerroute":"/manager",  //quick内网的配置路由
        "serviceroute":"/service"   //quick的内网服务路由
    }

2、运行quick
3、注册服务到网关
    /quick_operation  //注册接入服务   
    {
        "route": "/",    //服务的路由
        "service": {
            "serviceaddr": ["127.0.0.1:6067"],  //服务的地址
            "registertime": "2019.2.22",   //注册时间
            "altreason": "patch test",     //注册原因
            "balance":"random"             //选择这个路由的负载均衡策略
        },
        "servicename": "liantiao"          //注册的服务名字
    }
4、git clone gin_example_for_quick,并且启动
5、这样直接访问quick的外网
http://127.0.0.1:8090/  get请求
返回值为 hello word

灰度发布

在此之前一定已经完成了示例部分,现在已经对quick比较熟悉了,下面来尝试一下quick的灰度发布功能
要灰度发布一个新的路由

示例
1、打开postman
domain  :confcenter的地址
method  :POST
route   :/quick_operation    
    {
        "route": "/",    //选择要灰度的路由
        "service": {
            "serviceaddr": ["127.0.0.1:6067"],  //灰度的地址
            "registertime": "2019.2.22",   //灰度时间
            "altreason": "patch test",     //灰度原因
            "balance":"random"             //灰度这个路由的负载均衡策略
        },
        "servicename": "liantiao"          //灰度服务名字
    }
2、访问quick的domain + / 便可以访问到这个要灰度的服务

紧急修复、下线

如果在线上遇到了某个路由或者某个服务有bug,要下线,那么这种情况是可以轻松实现的

示例
1、打开postman
domain  :confcenter的地址
method  :delete
route   :/quick_operation    
    {
        "route": "/",    //选择要下线的路由
        "service": {
            "serviceaddr": ["127.0.0.1:6067"],  //下线的地址
            "registertime": "2019.2.22",   //下线原因
            "balance":"random"             //下线这个路由的负载均衡策略
        },
        "servicename": "liantiao"          //下线服务名字
    }
2、访问quick的domain + / 便访问不到到这个下线的服务

注意

使用灰度和紧急修复下线都是秒级进行的,不会存在卡顿,所以不用担心使用这些功能会出现网关卡顿等对业务的影响

Extension points exported contracts — how you extend this code

Balancing (Interface)
(no doc) [2 implementers]
balance/balance.go

Core symbols most depended-on inside this repo

Debug
called by 43
log/log.go
Error
called by 28
log/log.go
doPrintf
called by 10
log/log.go
SendErrorResponse
called by 9
config/api_response.go
Warn
called by 7
log/log.go
Close
called by 5
log/log.go
NormalResponse
called by 4
config/api_response.go
makeClient
called by 2
initialize/init.go

Shape

Function 47
Method 22
Struct 16
Interface 1

Languages

Go100%

Modules by API surface

initialize/init.go19 symbols
log/log.go16 symbols
config/config.go11 symbols
config/api_response.go8 symbols
basic/app/app.go6 symbols
router/run.go5 symbols
engine/engine.go5 symbols
balance/balance.go4 symbols
basic/app/engine.go3 symbols
basic/basic.go2 symbols
balance/random.go2 symbols
balance/polling.go2 symbols

For agents

$ claude mcp add quick \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact