项目作者: aimpsmile

项目描述 :
x-apisix demo
高级语言: Go
项目地址: git://github.com/aimpsmile/x-apisix-example.git
创建时间: 2020-04-21T14:25:07Z
项目社区:https://github.com/aimpsmile/x-apisix-example

开源协议:Apache License 2.0

下载


x-apisix-example简介

  • x-apisix的教程工程
  • 希望go-micro使用用户可以快速入门
  • 项目路径

环境变量兼容go-micro(请修改Makefile)

  • MICRO_REGISTRY=etcd
  • MICRO_REGISTRY_ADDRESS=etcd.service:2379

版本匹配逻辑

网关模板匹配规则(范围不允许交叉重叠)

  • 版本一般v1.3.2.2.2.2.2 会转成float64位进行比对。比对来讲更简单,但是float64小数位超过15位精度就丢失,请规范的使用版本
  • > >= < <= = 浮点数数学比对工具
  • ~ v1.3 匹配 [v1.3.00 ,v1.33.9999999] 闭区间
  • v1.3,v1.5 匹配 [v1.3.00,v1.5.9999999] 闭区间
  • * 如果版本没有匹配上,保底的。

    conf.yml配置详情

    ```yaml
    global:
    log: # 日志
    level: debug # 日志级别
    logFileDir: /logs # 日志目录
    maxSize: 10 # 每个日志文件保存的最大尺寸 单位:M
    maxBackups: 3 # 日志文件最多保存多少个备份
    maxAge: 10 #文件最多保存多少天
    skip: 0
    conf: # x-apisix配置
    check: # 同步检查配置
    retres: 3 #请求接口重试次数
    interval: 5 #检查间隔:单位s
    leader: # leader主从配置
    id: “monitor-default” # 选举需要用的id
    group: “gateway” #leader 属组
    nodes: #节点列表
    1. - "etcd.service:2379"
    gateway: # 网关的相关的配置
    timeout: 5000 #请求接口超时时间毫秒
    retries: 1 #请求接口重试次数
    apikey: “edd1c9f034335f136f87ad84b625c8f1” #网关身份认证token(apisix v1.2之后有用)
    baseurl: “http://apisix.service:8888/apisix/admin“ #网关的接口路径
    protoPath: “/storage/code/examples/micro-to-apisix/grpc/proto” #proto文件路径
    forbidRoutes: # 禁用同步到网关的路由
    1. # 服务的状态,必须路径
    2. /stats: true
    3. # 健康检查,必须路径
    4. /health: true
    filter: #同步过滤配置
    -
    1. bu: "aimgo" # bu名称
    2. stype: "web" # 服务类型,支持http2、web、srv、tool、api、job、apigw、webgw
    3. module: "*" # *代码所有的文档
    4. ver: # 版本
    5. "*": #所有版本
    6. routeTpl: "yaml/web.routes.yaml" #路由模板、相对配置目录即可
    7. upstreamTpl: "yaml/web.upstreams.yaml" #负载均衡模板、相对配置目录即可
    8. tplFormat: "yaml" # 模板格式:json、yaml
    9. hosts: # 解析的域名
    10. - "web.uqudu.com"
    11. - "web2.uqudu.com"
    -
    1. bu: "aimgo"
    2. stype: "http2"
    3. module: "*"
    4. ver:
    5. "*":
    6. routeTpl: "yaml/grpc.routes.yaml"
    7. upstreamTpl: "yaml/grpc.upstreams.yaml"
    8. tplFormat: "yaml"
    9. hosts:
    10. - "srv.uqudu.com"
    11. - "http2.uqudu.com"
  1. ## 执行脚本之前请修改对应的配置
  2. * 修改 **x-apisix-example\apisix\config\local\apisix\conf.yml** 配置项目
  3. * gateway.baseurl # apisix的admin api路径
  4. * gateway.protoPath # proto路径
  5. * host修改
  6. * apisix服务器ip web.uqudu.com srv.uqudu.com http2.uqudu.com web2.uqudu.com
  7. ### 启动x-apisix
  8. ```sh
  9. # 安装
  10. make xapisix-install
  11. # 执行
  12. make xapisix-exec

websocket

  1. # 安装
  2. make websocket-install
  3. # 执行
  4. make websocket-exec

grpc

  1. # 安装
  2. make grpc-install
  3. # 执行
  4. make grpc-exec

web

  1. # 安装
  2. make web-install
  3. # 执行
  4. make web-exec