
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习达内java编程开发等互联网课程,而本文我们就通过案例分析来简单了解一下,java编程消息队列概念与作用。
1.消息队列
消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信
而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的接收者,消息可以被多个消费者接收。
使用消息队列的作用如下
异步:对于一些用户的请求,可能包含一些发送短信,发送邮件等系统处理,此时可以不需要等待短息发送完成或者邮件发送完成,而是通过消息队列通知这些模块即可返回,避免用户长时间等待
解耦:将数据发送到消息队列,对该数据感兴趣的系统自行订阅该消息即可,这种做法可以降低代码的耦合度。
消峰填谷:将瞬时高并发请求打到消息队队列上,作为数据库请求的缓冲,避免短时间大量的数据库请求导致数据库奔溃。
2.RabbitMQ简介
RabbitMQ是一种开源的多协议消息代理软件,它将消息发布者(发布消息的应用程序,也称为生产者)接收消息并将它们路由到消费者(处理消息的应用程序)。
RabbitMQ支持多种消息传递协议,其中AMQP0-9-1是核心,并以插件的形式支持STOM,MQTT,AMQP1.0。
AMQP,即AdvancedMessageQueuingProtocol,中文名称是高级消息传递协议。
3.RabbitMQ中的相关概念
Producer:消息生产者
Consumer:消息消费者
Broker:消息代理,这里指即RabbitMQ,通过消息代理可以将消息从生产者投递到消费者
Virtualhost:虚拟主机,使单个消息代理能提供了多个相对隔离的环境,隔离的资源包括交换机、队列等
Exchange:交换机,作用相当于现实生活的快递公司,生产者的消息实际时先投递到交换机,交换机再根据类型和绑定关系拷贝消息副本到指定队列,交换机的类型有direct,topic,headersandfanout
Queue:队列,先进先出的优先级队列,充当了一个缓冲区的角色,作用相当于现实生活中的菜鸟驿站等代收点
Binding:交换机和队列的绑定关系,交换机投递消息到指定队列的规则,作用相当于现实生活中寄快递时填写的地址
Connection:消息生产者和消费者通过TCP连接到虚拟主机,确保数据传输到可靠性
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。