异步处理基础概念
在接收设备数据之前,我们需要先来熟悉一些基本的概念,来方便大家理解接收设备数据的基本思路
1. 同步和异步
同步和异步的概念,在我们之前讲解js课程的时候已经学习过,基本的思路是一样的
- 同步(Background Synchronous)是指任务在后台进行处理,但需要等待任务完成后才能继续执行其他操作
- 异步(Asynchronous)是指任务的提交和执行是相互独立的,任务的执行不会阻塞程序的继续执行
暂时无法在飞书文档外展示此内容
- 同步模式下,任务1完成后才能执行任务2,任务2需要等待任务1的完成。这种顺序执行的方式称为同步。
- 异步模式下,任务1和任务2可以并行执行,彼此之间相互独立,不需要等待对方的完成。这种并行执行的方式称为异步。
优缺点:
- 好处:
- 提高系统的并发性
- 改善系统的响应性
- 缺点:
- 复杂性增加
- 资源消耗增加
2. 消息队列的基本概念
我们知道了同步和异步的区别之后,我们来理解一下消息队列的概念,消息队列都是以异步的方式进行请求
暂时无法在飞书文档外展示此内容
- 生产者:负责将消息发送到消息队列中
- 消费者:负责从消息队列中获取消息并进行处理
- 队列:存储消息
- broker:负责接收、存储和分发消息的中间件组件,实现了发送者和接收者之间的解耦和异步通信
- topic:消息的分类
在IOT中数据流转是这样的,如下图
暂时无法在飞书文档外展示此内容
- 生产者:设备负责将消息发送到IOT中(队列)
- 每个产品可以绑定不同的topic来进行消息分类,比如有手表topic、烟雾topic
- IOT本身相当于是一个队列
- 消费者可以从指定的topic中获取数据
- 如果有多个消费者都要接收同一类消息,可以设置多个消费者,称为消费者组
3. 什么是AMQP
我们现在已经清楚了消息队列的基础概念,在IOT中数据接收用到的是AMQP来处理消息。
AMQP全称Advanced Message Queuing Protocol,是一种网络协议,用于在应用程序之间传递消息。它是一种开放标准的消息传递协议,可以在不同的系统之间实现可靠、安全、高效的消息传递。
AMQP协议的实现包括多种消息队列软件,例如RabbitMQ、Apache ActiveMQ、Apache Qpid等。这些软件提供了可靠、高效的消息传递服务,广泛应用于分布式系统、云计算、物联网等领域。