ApiSix使用(一)Http和Mqtt转发

一、Http转发

Http转发可以在dashboard进行路由配置,例如:
1.设置上游(可以理解为指定服务),首先将之前顺带部署example-web-1、example-web-2测试服务添加进来
在这里插入图片描述
2.设置服务(可以理解为给服务加上插件,扩展服务能力)
在这里插入图片描述
3.设置路由(相当于nginx转发),注意的是绑定服务可以不绑定,直接选择上游服务。
在这里插入图片描述
4.测试转发能力:连续请求可以看到具有负载均衡的能力,在生产中可以通过ApiSix转发到gateway服务,利用插件可以实现限流、监控、鉴权等操作!
在这里插入图片描述
在这里插入图片描述

二、MQTT转发

apisix目前不支持在dashboard配置mqtt转发,而是通过内置stream_routes实现

1.首先打开~/apisix/apisix-docker/example/apisix_conf,编辑config.yaml,在apisix加上:

proxy_mode: http&stream  #开启stream代理模式
stream_proxy:                 
  tcp:                        
  	- 9083  #自定义转发端口

在这里插入图片描述
2.返回上一级,编辑docker compose文件,配置映射9083端口,保存重启docker compose
在这里插入图片描述
3.通过接口新增mqtt转发配置,注意请求的是9180管理端口,而不是9080业务端口!
新增:

curl -X POST http://127.0.0.1:9180/apisix/admin/stream_routes/1 \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \ #自定义key,后面删除该配置也要带上
-H "Content-Type: application/json" \ 
-d '{
  "plugins": {
    "mqtt-proxy": {
      "protocol_name": "MQTT",
      "protocol_level": 4 
    }
  },
  "upstream": {
    "type": "roundrobin",
    "scheme": "tcp",
    "nodes": [{
            "host": "mqtt服务器IP",  #这里写你的mqtt服务器配置
            "port": 31883,
            "weight": 1
        }]
  }
}'

删除:

curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 \
-H "X-API-KEY: $admin_key" -X DELETE

查询所有路由:

curl -X GET "http://127.0.0.1:9180/apisix/admin/stream_routes" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1"

请求成功示例:
在这里插入图片描述

4.测试效果,使用mqttx测试端口连接成功!
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值