数据推送
# 数据推送
## 01.数据推送基本概述
> 数据推送配置能及时且精准的将数据事件推送给目标接口,开发者根据接收到的数据事件来处理相应的业务需求。
>
> 当系统执行完事件后将此事件的主要数据内容推送到配置的推送地址上,以便于开发者扩展系统。(每个事件所推送的内容都不同)
>
> 当前的数据推送共三种类型:MQTT,RabbitMQ,HTTP 根据需求来选择推送类型,这三种类型决定了以哪种方式推送消息。
## 02.数据推送重要属性
|属性名|属性介绍|
|---|---|
| 事件类型 | 此属性决定了监听那个业务事件(如:项目删除/企业注册等)。 |
| 消息推送方式 | 当消息接收较为频繁时,建议使用MQTT或RabbitMQ类型(如:监听变量实时值),HTTP方式不适合接收推送频率较高的事件。 |
| payload | 消息有效载荷,即事件触发后的数据格式。 |
| 启用状态 | 该属性决定,此配置是否生效。 |
## 03.数据推送流程图
### 3.1.添加数据推送配置
> 概述:
>
> 该流程介绍了这三种推送类型的添加方式,三种类型的基础配置都有所不同。
>
> 提示:需先添加规则后,再修改详细的推送配置参数。
##### 3.1.0.添加规则
*0.1. 点击添加规则按钮*

*0.2. 输入规则名称,然后点击保存即可完成新增规则*

*1. 输入必须值,根据需要选择推送方式*

 *1.1. HTTP类型*
> 概述: Http使用的是可靠的数据传输协议,仅适合触发频率较低的业务事件。

|属性名|属性介绍|
|---|---|
|请求地址|配置HTTP推送地址|
|超时时间(s)|HTTP请求超时时间|
|最大消息数量|HTTP请求数据队列累计数量|
*2. 点击保存规则按钮即可完成推送规则配置*

### 3.2.修改数据推送配置
> 概述:该方式可修改监听的事件类型,以及推送方式
*1. 选择您需要修改的推送配置,输入新的推送配置属性*

### 3.3.删除数据推送配置
*1. 找到您需要删除的推送配置,点击删除按钮即可完成删除*

 *1.2. MQTT类型*
> 概述:MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。[了解MQTT](https://mqtt.org/)

|属性名|属性介绍|
|---|---|
|host|搭建mqtt服务器的地址(可以是域名、ip)|
|port|mqtt服务器是基于tcp协议再封装的一层应用协议,这个端口用来监听收发数据|
|username、password|mqtt服务是有鉴权的,账号和密码正确才能订阅和发布消息(可以不设置账号和密码)|
|topic|(主题)只有定阅了某个主题后,才能收到相应主题的payload,才能进行通信|
|qos|qos 是MQTT设计的保证消息稳定传输的机制|
|retain|是否保留最新的一条消息|
 *1.3. RabbitMQ类型*
> 概述:RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件。[了解RabbitMQ](https://www.rabbitmq.com/)

|属性名|属性介绍|
|---|---|
|host|搭建RabbitMQ服务器的地址(可以是域名、ip)|
|port|RabbitMQ 服务器端口号|
|username、password|服务器用户名、密码,安装好rabbitmq的时候会默认给出用户名和密码guest/guest|
|virtualHost|RabbitMQ 服务器都能创建出许多虚拟的消息服务器,这些虚拟的消息服务器就是我们所说的虚拟主机(virtual host),一般简称为 vhost|
|exchange|Exchange是消息队列RabbitMQ版的消息路由代理。|
|exchangeType|是Exchange的类型fanout、direct、topic、headers|
|router|路由模式是发布/订阅模式的一种特殊情况。|
|queue|队列,是 RabbitMQ 的内部对象,用于存储消息。|
|qos|在非自动确认消息的前提下,如果一定数目的消息(通过基于 consume 或者 channel 设置 Qos 的值)未被确认前,不进行消费新的消息。|
|durable|交换器和队列持久化属性为durable(其属性值为false代表不持久化,属性值为true代表持久化)|
|exclusive|声明了exclusive属性的队列只对首次声明它的连接可见,并且在连接断开时自动删除|
|autoDelete|exchange、queue 断开后是否自动删除|