人工智能 人脸识别 使用MQ实现解耦以及异步

从之前的人脸识别的文章来看,使用到mq中间处理的主要在捉拍机获取到的人脸识别的特征发送到rabbitMQ,然后单张人脸注册的服务进行消费,这时候就是实现了服务之间的异步处理以及解耦的作用
还有之前的批量处理上传的人脸特征的服务,使用的是同步的方式,这种方式确实有点low,需要异步来处理提供用户体验,这里就需要到MQ来实现异步的响应客户端。
当然其他的MQ场景,比如日志,很多时候就是使用到Kafka来实现的在这里插入图片描述
这里结合上一节提到的统一配置文件来详细说说RabbitMQ的使用
1.在消费端引入起步依赖 这里是spring-boot-starter-amqp
2.配置文件yml配置上rabbitMQ的配置 ,这里是配置的是rabbitMQ的服务器地址(默认地址是5672),而不是控制台地址(端口为15672)
在这里插入图片描述
这里也可以通过github修改配置的方式来统一配置
3.控制层设计方法来接收消息,通过@RabbitListener(“myQueue”) 来定义监听的MQ的名字。
在这里插入图片描述
4.开始单测
通过@AutoWired注入AmqpTemplate 使用amqp的方法
这里需要注意的是测试类需要继承已经有启动类的注解 而且需要有@Component 注入IOC容器
在这里插入图片描述
如果没有新建队列就手动的建立,通过控制面板可以看到消息发送以及消费的过程
在这里插入图片描述
还有另外的一种方式来实现自动创建队列
使用注解 @RabbitListener(queueToDeclare=@queue(“myQueue”))
在这里插入图片描述
如果需要绑定交换机就需要设置
@RabbitListener(bindings=@QueueBinding(
value=@Queue(“myQueue”),
exchange=@Exchange(“myExchange”)
))

在这里插入图片描述
下节将会详细说说什么情况需要用交换机,什么情况直接使用queue这个注解

猜你喜欢

转载自blog.csdn.net/weixin_30947631/article/details/85049317