RabbitMQ
文章平均质量分 78
一写代码就开心
一起学编程呀,头秃的那种。
学完之后,找一份java,python开发的工作不成问题
展开
-
RabbitMq 笔记,一篇文章入门
目录传统的http请求存在那些缺点为什么需要使用mqjava代码使用多线程的缺点rabbitmq安装传统的http请求存在那些缺点我们学习mq之前,我们可以看看传统的http请求有什么缺点?1 浏览器发送http请求,在高并发情况下,会对服务器造成压力;2 有的服务器会设置最大的请求线程数,如果高并发,剩余的会放到队列里面,队列里面的线程多了,也会造成服务器崩溃;3 如果这个请求的逻辑里面,处理的业务是比较的大,比较的耗时,这样客户端就会一直的等待,或者超时之后,客户端会一直尝试的重新请原创 2022-02-24 18:15:03 · 323 阅读 · 0 评论 -
springboot整合rabbitMQ系列(六)rabbitmq的应用场景
目录1 rabbitmq的应用场景1 rabbitmq的应用场景原创 2020-10-23 09:18:29 · 253 阅读 · 1 评论 -
springboot整合rabbitMQ系列(五)topics模型,这个是既有路由键,也使用通配符
这个是第五个模式发送者 @Test void testTopics() {//使用rabbitmq直接往队列里面放数据// convertAndSend()第一个参数 是 rabbitTemplate.convertAndSend("topics","user.save","基于这个user.save路由键的消息"); }这个是发送给名字为topics的交换机,路由键是user.save ,发送的消息是 : 基于这个user.sa.原创 2020-10-23 08:50:04 · 256 阅读 · 1 评论 -
springboot整合rabbitMQ系列(四)路由模型,就是必须路由键匹配之后,消费者才可以进行消费信息
第四个模型就是 路由的模型,这个就是多了一个路由键,消息里面有路由键,队列里面有路由键,只有路由键匹配之后,才可以消费者获取到数据。生产者 @Test void testRouter() {//使用rabbitmq直接往队列里面放数据// convertAndSend()第一个参数 是 rabbitTemplate.convertAndSend("directs","info","direct 模型里面发送的消息"); }这个生产者在发.原创 2020-10-22 19:29:22 · 727 阅读 · 1 评论 -
springboot整合rabbitMQ系列(三)fanout的模型,也就是广播的模型
第三个模型是广播模型,这个模型里面就要使用交换机了,生产者 @Test void testFanout() {//使用rabbitmq直接往队列里面放数据// convertAndSend()第一个参数 是 rabbitTemplate.convertAndSend("logs","","Fanout 模型里面发送的消息"); }消费者 @Component public class FanoutCustomer {原创 2020-10-22 19:15:58 · 418 阅读 · 1 评论 -
springboot整合rabbitMQ系列(二)一个队列里面的信息,让多个消费者进行消费
之前讲解了第一个模型,直接队列模型,现在开始讲解工作模型也就是有多个消费者要消费队列里面的信息,还是没有涉及到交换机。之前已经讲过,这个模型是rabbitmq默认使用轮询的方式将队列里面的信息发给多个消费者。那么在springboot项目里面如何使用第二个模型呢?发送者这个和第一个模型是一样的,发送者还是往队列里面发送消息。往work队列里面发送消息消费者既然有了发送者,现在开始写消费者@Componentpublic class WorkCustomer { @Rabbi原创 2020-10-22 18:31:01 · 3936 阅读 · 4 评论 -
springboot整合rabbitMQ系列(一)第一个模型,直接将消息发送给队列,消费端在队列里面直接拿出消息
我们之前将的是,直接使用java代码操作rabbitmq,相当于就是原生的代码操作rabbitmq,但是之后我们在项目里面,不会使用原生的java代码操作rabbitmq的,所以现在我们要将springboot项目是如何整合rabbitmq的。项目里面是如何使用rabbitmq的。以下将会分别的讲解springboot项目是如何操作5种模型的。直接使用简单的springboot项目来说5种模型创建springboot项目1 创建springboot项目...原创 2020-10-22 18:10:11 · 1585 阅读 · 1 评论 -
消息中间件RabbitMQ系列,Topics模型,多了一个通配符(十一)
总之,topics模型就是比direct模型多了一个通配符。提供者public class Provider { public static void main(String[] args) throws IOException { Connection connection = RabbitMqUtils.getConnection(); // 创建通道 Channel channel = connection.createCh.原创 2020-10-22 15:39:11 · 172 阅读 · 1 评论 -
消息中间件RabbitMQ系列,路由模型Routing,提供者和消费者(十)
前面我们已经讲了我们创建交换机的时候,有很多的模型,之前已经讲了广播模型,现在开始讲路由模型也就是现在增加了一个路由key,消息里面要有路由key ,队列里面要有路由key,路由key就起到关键的作用,现在就可以利用路由key来决定哪些消息在哪些队列里面。提供者public class Provider { public static void main(String[] args) throws IOException { Connection connection原创 2020-10-22 15:16:30 · 455 阅读 · 1 评论 -
消息中间件RabbitMQ系列,广播模型fanout,提供者和消费者(九)
之前已经讲了直连模型,现在开始说这个扇形模型的使用,也就是fanout模型的使用,这个是扇出,也就是广播这个是有交换机的。自定义交换机,并且将消息发送给交换机我们rabbitmq默认是有一些交换机,但是现在我们要自己创建一个交换机,用代码如何进行创建交换机。public class Provider { public static void main(String[] args) throws IOException { Connection connection = R原创 2020-10-22 14:45:33 · 316 阅读 · 1 评论 -
消息中间件RabbitMQ系列,多个消费者的时候,不使用默认的轮询,要实现能者多劳(八)
之前我们已经实现了一个发送者将消息发送到队列,有多个消费者从队列里面拿数据,但是这样多个消费者是轮询的方式从队列里面拿数据的,每一个消费者拿到的数据都一样多,现在我们想要实现的是能者多劳,咋实现这个呢?什么是消息确认机制rabbitmq软件为什么 默认是轮询的了,这个和软件的消息确认机制有一定的关系,那么什么是消息确认机制了?我们先看消费者端的代码public class Customer1 { public static void main(String[] args) throws I原创 2020-10-20 16:29:42 · 1024 阅读 · 1 评论 -
消息中间件RabbitMQ系列,工作模型,一个发送者,多个消费者从队列里面拿数据(七)
之前讲解的直连模型,这个只是一个入门,也就是之前的那个只有一个消费者。现在想要一个队列被更多的消费者进行消费,那么现在就有了第二个模型,这个就是工作队列模型一个队列可以被多个消费者进行消费发送者public class provider { @Test public void SendMessage() throws IOException, TimeoutException { Connection connection = RabbitMqUtils.getCo原创 2020-10-20 15:34:18 · 523 阅读 · 1 评论 -
消息中间件RabbitMQ系列,代码操作rabbitmq软件,具体的代码的意思是什么,详细解释(六)
我们先看发送消息代码public class provider { @Test public void SendMessage() throws IOException, TimeoutException { Connection connection = RabbitMqUtils.getConnection();// 创建通道 Channel channel = connection.createChannel();//原创 2020-10-20 14:52:03 · 360 阅读 · 1 评论 -
消息中间件RabbitMQ系列,对直连模式的总结,也就是优化代码,对冗余的代码提取成为工具类(五)
之前我们已经对直连模式进行了讲解,并且用代码实现了发送端和接收端,但是发送端和接收端的代码有很多的重复的,我们就需要优化代码,提取冗余的代码为工具类。package utils;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;import java.u原创 2020-10-20 14:15:54 · 223 阅读 · 1 评论 -
消息中间件RabbitMQ系列,直连模式,实现利用代码从队列里面取出数据(四)
之前已经利用代码,将一些数据放到了队列里面,现在我们要实现利用代码从队列里面拿出数据。public class Customer { public static void main(String[] args) throws IOException, TimeoutException { // 创建连接mq的连接工厂对象,这个是依赖里面的类,我们只需要拿过来创建对象就可以了 ConnectionFactory connectionFactory原创 2020-10-20 10:00:20 · 615 阅读 · 1 评论 -
消息中间件RabbitMQ系列,利用代码将数据放到队列里面,使用直连模式,实现发送者(三)
之前已经讲解了如何安装这个软件,还有就是对管理界面的解释。现在我们上手使用一下这个软件吧。回顾AMQP之前我们已经讲过,这个rabbitmq软件就是基于这个AMQP协议的。这个协议也是基于生产者和消费者模型的。rabbitmq使用的图解rabbitmq软件里面有虚拟主机 Virtual Host ,这个虚拟主机的意思就是和数据库一样,每一个数据库里面的东西属于哪个项目,这个可以区分。所以现在我们有很多的项目都可以访问这一个rabbitmq软件,每一个项目就可以根据这个虚拟主机找到和自己相原创 2020-10-20 09:31:50 · 1179 阅读 · 1 评论 -
消息中间件RabbitMQ系列,直接启动rabbitmq,对管理控制台进行详细的介绍(二)
之前已经在docker里面安装了这个rabbitmq这个软件了,现在就开始讲解这个软件怎么使用,如何在项目里集成这个软件。启动rabbitmq之前我们已经在docker里面安装了rabbitmq容器,那么我们关闭虚拟机之后,重新启动虚拟机,现在想要使用rabbitmq,需要启动这个软件,因为之前已经创建了这个软件的容器,这个虚拟机里面已经有这个软件了,现在我们要做的只是启动,而不是创建启动,所以命令是不一样的,现在的命令只是启动docker ps -a以上的这个命令就可以看到全部的已经创建的容原创 2020-10-19 15:31:14 · 323 阅读 · 1 评论 -
消息中间件RabbitMQ系列,在虚拟机里面利用docker技术安装rabbitmq,并且启动,浏览器进行访问rabbitmq(二)
我们就需要在虚拟机里面安装这个rabbitmq软件,并且要启动这个rabbitmq。现在我们使用docker技术,在虚拟机里面先安装这个docker,启动docker之后。1 在docker里面拉取镜像docker pull rabbitmq:managementdocker images 这个命令的意思是列出这个docker容器里面所有的镜像,我们可以看到其中有我拉取的rabbitmq的 镜像2 创建并启动容器docker run -it -d --name rabbitmq -p 156原创 2020-10-19 14:55:09 · 414 阅读 · 1 评论 -
消息中间件RabbitMQ系列,什么是MQ,什么是AMQP,什么是RabbitMQ(一)
讲消息中间件之前的知识生产者和消费者的模型最主要的就是中间的消息队列什么是MQmessage queue 意思就是消息队列市场上面的消息队列有很多,比如rabbitmq,kafka实现消息队列的产品就是我们要讲的技术,就是消息中间件。消息中间件就是一个软件,就是一个技术,底层就是消息队列什么是AMQP?AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是进程之间传递异步消息的网络协议。2 AMQP工作过程发布者(Publisher)原创 2020-10-19 10:34:57 · 322 阅读 · 1 评论