参考自腾讯云的实验课堂,减少部署时间的折腾

1、创建Erlang.Repo库

  1. curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

2、安装Erlang

  1. yum install -y erlang

3、创建RabbitMQ-Server.Repo库

  1. curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

4、安装RabbitMQ-Server

  1. yum install -y rabbitmq-server

5、开机自启动设置(可选)

  1. chkconfig rabbitmq-server on

6、服务启动

  1. service rabbitmq-server start

7、开启访问页面

  1. rabbitmq-plugins enable rabbitmq_management

8、添加登录账号

  1. rabbitmqctl add_user test 123456

9、账号权限设置

  1. rabbitmqctl set_user_tags test administrator
  2. rabbitmqctl set_permissions -p "/" test ".*" ".*" ".*"

10、访问后台信息:

  1. http://192.168.2.121:15672/
  2. test
  3. 123456

11、服务停止

  1. service rabbitmq-server stop

访问不了,关闭防火墙处理:

  1. systemctl stop firewalld.service #停止firewall
  2. systemctl disable firewalld.service #禁止firewall开机启动

参考腾讯云实验室,很多东西在这里搞安装教程贼方便

  1. https://cloud.tencent.com/developer/labs/gallery

防止依赖缺失,还是加上这段命令:

  1. yum install -y build-essential \
  2. unixODBC \
  3. unixODBC-devel \
  4. kernel-devel \
  5. m4 \
  6. tk \
  7. tc \
  8. xz \
  9. gcc \
  10. gcc-c++ \
  11. glibc-devel \
  12. make \
  13. ncurses-devel \
  14. openssl \
  15. openssl-devel \
  16. xmlto \
  17. perl \
  18. wget \
  19. gtk2-devel \
  20. binutils-devel

草,一年前写了,算了算了,留着吧

  1. https://www.cnblogs.com/mindzone/p/13660810.html

创建消费者和生产者两个服务:

消费者编写了简答模式,pom只放了RabbitMQ的客户端

(这里写错位置了,要放到生产者里面)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>RabbitMQ</artifactId>
  7. <groupId>cn.dzz</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11.  
  12. <artifactId>ConsumerService</artifactId>
  13.  
  14. <dependencies>
  15. <dependency>
  16. <groupId>com.rabbitmq</groupId>
  17. <artifactId>amqp-client</artifactId>
  18. <version>5.6.0</version>
  19. </dependency>
  20. </dependencies>
  21.  
  22. <properties>
  23. <maven.compiler.source>8</maven.compiler.source>
  24. <maven.compiler.target>8</maven.compiler.target>
  25. </properties>
  26.  
  27. </project>

消息队列简单模式代码:

  1. import com.rabbitmq.client.Channel;
  2. import com.rabbitmq.client.Connection;
  3. import com.rabbitmq.client.ConnectionFactory;
  4.  
  5. import java.nio.charset.StandardCharsets;
  6.  
  7. public class RabbitMqTest {
  8.  
  9. public static void main(String[] args) throws Exception{
  10.  
  11. ConnectionFactory connectionFactory = new ConnectionFactory();
  12.  
  13. connectionFactory.setHost("192.168.2.121");
  14. connectionFactory.setPort(ConnectionFactory.DEFAULT_AMQP_PORT); // 5672
  15. connectionFactory.setVirtualHost("/dzz"); // 虚拟主机? 默认值 /
  16. connectionFactory.setUsername("guest"); // guest
  17. connectionFactory.setPassword("guest"); // guest
  18.  
  19. Connection connection = connectionFactory.newConnection();
  20. Channel channel = connection.createChannel();
  21.  
  22. /**
  23. * public com.rabbitmq.client.AMQP.Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments) throws IOException {
  24. * com.rabbitmq.client.AMQP.Queue.DeclareOk ok = this.delegate.queueDeclare(queue, durable, exclusive, autoDelete, arguments);
  25. * this.recordQueue(ok, queue, durable, exclusive, autoDelete, arguments);
  26. * return ok;
  27. * }
  28. * String queue 队列名称?
  29. * boolean durable 是否持久化? 写入Erlang的库中,否则只存活在内存中,RabbitMQ服务重启,队列销毁
  30. * boolean exclusive 是否独占? 只允许一个消费者服务监听这个队列? Connection对象关闭 是否删除队列
  31. * boolean autoDelete 是否自动删除? 没有消费者服务监听时自动删除
  32. * Map<String, Object> arguments 参数信息, 自行设置
  33. *
  34. * 如果没有队列叫这个 hello_rabbitmq RabbitMQ会自动创建这个队列、
  35. */
  36. channel.queueDeclare("hello_rabbitmq", true, false, false, null);
  37.  
  38. /**
  39. * public void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body) throws IOException {
  40. * this.delegate.basicPublish(exchange, routingKey, props, body);
  41. * }
  42. * String exchange 交换机名称,简单模式 使用默认交换机 ""
  43. * String routingKey 路由名称 (由于使用的时默认交换机,路由名称和上面的队列名称一致)
  44. * BasicProperties props 配置信息
  45. * byte[] body 发送的消息数据
  46. */
  47. String body = "hello, rabbitMq !!!!";
  48. channel.basicPublish("", "hello_rabbitmq", null, body.getBytes(StandardCharsets.UTF_8));
  49.  
  50. // 资源释放
  51. channel.close();
  52. connection.close();
  53. }
  54. }

注意没开始之前,队列标签页没有任何信息:

执行代码之后:

  1. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  2. SLF4J: Defaulting to no-operation (NOP) logger implementation
  3. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  4. Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
  5. at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:364)
  6. at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64)
  7. at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:156)
  8. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1106)
  9. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1063)
  10. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1021)
  11. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1182)
  12. at RabbitMqTest.main(RabbitMqTest.java:19)
  13.  
  14. Process finished with exit code 1

访问拒绝,是因为之前已经设置了RabbitMQ的账号信息

可以先用默认账号进行登录:

它提示这个账号仅限本机访问,由于安装在Linux上面,所以是非本机访问

使用 test 123456 再次再次执行:

  1. "C:\Program Files (x86)\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=59622:C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-32.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\rt.jar;C:\Users\Administrator\IdeaProjects\RabbitMQ\ConsumerService\target\test-classes;C:\Users\Administrator\.m2\repository\com\rabbitmq\amqp-client\5.6.0\amqp-client-5.6.0.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar" RabbitMqTest
  2. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  3. SLF4J: Defaulting to no-operation (NOP) logger implementation
  4. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  5. Exception in thread "main" java.io.IOException
  6. at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:129)
  7. at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:125)
  8. at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:147)
  9. at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:403)
  10. at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64)
  11. at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:156)
  12. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1106)
  13. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1063)
  14. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1021)
  15. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1182)
  16. at RabbitMqTest.main(RabbitMqTest.java:19)
  17. Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - vhost /dzz not found, class-id=10, method-id=40)
  18. at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
  19. at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
  20. at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:502)
  21. at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:293)
  22. at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141)
  23. ... 8 more
  24.  
  25. Process finished with exit code 1

虚拟主机未找到 得,还不是自动创建的,需要去面板上配置:

添加虚拟主机

没有异常了,应该是发送成功了

  1. "C:\Program Files (x86)\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=60801:C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-32.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\rt.jar;C:\Users\Administrator\IdeaProjects\RabbitMQ\ConsumerService\target\test-classes;C:\Users\Administrator\.m2\repository\com\rabbitmq\amqp-client\5.6.0\amqp-client-5.6.0.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar" RabbitMqTest
  2. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  3. SLF4J: Defaulting to no-operation (NOP) logger implementation
  4. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  5.  
  6. Process finished with exit code 0

查看队列面板上面就会多出一条记录:

但是连接记录和频道记录都没有,原因是我们把资源释放掉了

现在把代码释放资源的部分注释掉,程序将不会停止

面板上面就会显示连接信息和频道信息

创建消费者,接收消息:

  1. import com.rabbitmq.client.*;
  2.  
  3. import java.io.IOException;
  4. import java.nio.charset.StandardCharsets;
  5.  
  6. public class RabbitMqTest {
  7.  
  8. public static void main(String[] args) throws Exception{
  9.  
  10. ConnectionFactory connectionFactory = new ConnectionFactory();
  11.  
  12. connectionFactory.setHost("192.168.2.121");
  13. connectionFactory.setPort(ConnectionFactory.DEFAULT_AMQP_PORT); // 5672
  14. connectionFactory.setVirtualHost("/dzz"); // 虚拟主机? 默认值 /
  15. connectionFactory.setUsername("test"); // guest
  16. connectionFactory.setPassword("123456"); // guest
  17.  
  18. Connection connection = connectionFactory.newConnection();
  19. Channel channel = connection.createChannel();
  20.  
  21. /**
  22. * public com.rabbitmq.client.AMQP.Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments) throws IOException {
  23. * com.rabbitmq.client.AMQP.Queue.DeclareOk ok = this.delegate.queueDeclare(queue, durable, exclusive, autoDelete, arguments);
  24. * this.recordQueue(ok, queue, durable, exclusive, autoDelete, arguments);
  25. * return ok;
  26. * }
  27. * String queue 队列名称?
  28. * boolean durable 是否持久化? 写入Erlang的库中,否则只存活在内存中,RabbitMQ服务重启,队列销毁
  29. * boolean exclusive 是否独占? 只允许一个消费者服务监听这个队列? Connection对象关闭 是否删除队列
  30. * boolean autoDelete 是否自动删除? 没有消费者服务监听时自动删除
  31. * Map<String, Object> arguments 参数信息, 自行设置
  32. *
  33. * 如果没有队列叫这个 hello_rabbitmq RabbitMQ会自动创建这个队列、
  34. *
  35. * 对于消费者来说,队列声明不是必要的
  36. */
  37. channel.queueDeclare("hello_rabbitmq", true, false, false, null);
  38.  
  39. /**
  40. * 消息接受
  41. * public String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException {
  42. * return this.basicConsume(queue, autoAck, "", callback);
  43. * }
  44. * String queue 队列名称
  45. * boolean autoAck 是否自动确认
  46. * Consumer callback 回调方法
  47. *
  48. *
  49. */
  50. Consumer consumer = new DefaultConsumer(channel) {
  51. /**
  52. * 消息收到的回调方法(自动执行)
  53. * @param consumerTag 标识
  54. * @param envelope RabbitMQ服务信息
  55. * @param properties 配置信息
  56. * @param body 收到的数据
  57. * @throws IOException
  58. */
  59. @Override
  60. public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
  61. System.out.println("consumerTag " + consumerTag);
  62. String exchange = envelope.getExchange();
  63. long deliveryTag = envelope.getDeliveryTag();
  64. String routingKey = envelope.getRoutingKey();
  65. System.out.println("exchange " + exchange);
  66. System.out.println("deliveryTag " + deliveryTag);
  67. System.out.println("routingKey " + routingKey);
  68. System.out.println("properties " + properties);
  69. System.out.println("body(message) " + new String(body, StandardCharsets.UTF_8));
  70. System.out.println("- - - - - over - - - - -");
  71. }
  72. };
  73. channel.basicConsume("hello_rabbitmq", true, consumer);
  74. // 资源释放 消费者需要一直监听发送过来的消息,不能关闭资源
  75. // channel.close();
  76. // connection.close();
  77. }
  78. }

执行后输出打印:

从生产者发送的三条消息全部收到

  1. "C:\Program Files (x86)\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=62981:C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-32.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files (x86)\Java\jdk1.8.0_291\jre\lib\rt.jar;C:\Users\Administrator\IdeaProjects\RabbitMQ\ConsumerService\target\test-classes;C:\Users\Administrator\.m2\repository\com\rabbitmq\amqp-client\5.6.0\amqp-client-5.6.0.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar" RabbitMqTest
  2. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  3. SLF4J: Defaulting to no-operation (NOP) logger implementation
  4. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  5. consumerTag amq.ctag-DEOhj99q55lb2BDUqetVaQ
  6. exchange
  7. deliveryTag 1
  8. routingKey hello_rabbitmq
  9. properties #contentHeader<basic>(content-type=null, content-encoding=null, headers=null, delivery-mode=null, priority=null, correlation-id=null, reply-to=null, expiration=null, message-id=null, timestamp=null, type=null, user-id=null, app-id=null, cluster-id=null)
  10. body(message) hello, rabbitMq !!!!
  11. - - - - - over - - - - -
  12. consumerTag amq.ctag-DEOhj99q55lb2BDUqetVaQ
  13. exchange
  14. deliveryTag 2
  15. routingKey hello_rabbitmq
  16. properties #contentHeader<basic>(content-type=null, content-encoding=null, headers=null, delivery-mode=null, priority=null, correlation-id=null, reply-to=null, expiration=null, message-id=null, timestamp=null, type=null, user-id=null, app-id=null, cluster-id=null)
  17. body(message) hello, rabbitMq !!!!
  18. - - - - - over - - - - -
  19. consumerTag amq.ctag-DEOhj99q55lb2BDUqetVaQ
  20. exchange
  21. deliveryTag 3
  22. routingKey hello_rabbitmq
  23. properties #contentHeader<basic>(content-type=null, content-encoding=null, headers=null, delivery-mode=null, priority=null, correlation-id=null, reply-to=null, expiration=null, message-id=null, timestamp=null, type=null, user-id=null, app-id=null, cluster-id=null)
  24. body(message) hello, rabbitMq !!!!
  25. - - - - - over - - - - -

可以看到连接和频道消费者和生产者的区别了

消息存储是一个先进先出的方式,RabbitMQ像是一个缓存器,能把生产者发送的信息保存起来,等待消费者接收

【RabbitMQ】01 简单模式的更多相关文章

  1. RabbitMQ的简单模式快速入门与超时异常的处理方法

    本文适合JAVA新人,想了解RabbitMQ又不想去看官网文档的人(英语水看的头疼(◎﹏◎),但建议有能力还是去看官网文档). 消息队列MQ(一) MQ全称为Message Queue,消息队列是应用 ...

  2. [RabbitMQ]01. 在 Win10 下通过 Docker 安装

    目录 win10家庭版 win10专业版和企业版 1. 开启Hyper-v 2. 安装Toolbox工具 3. 运行安装文件 4. 启动docker 5. 安装rabbitmq 6. 网页访问rabb ...

  3. RabbitMq简单模式

    RabbitMq简单模式 定义一个生产者,负责发送消息到队列中 /** * @author zjh * 生产者发信息 */ public class Producer { /** * 队列名称 */ ...

  4. 01: RabbitMQ

    目录: 1.1 RabbitMq与Redis队列对比 1.2 在win7 64位机上安装RabbitMQ 1.3 RabbitMQ消息分发轮询 与 持久化 1.4 RabbitMQ 设定某个队列里最大 ...

  5. 039 RabbitMq及数据同步01

    1.RabbitMq (1)问题引出 目前我们已经完成了商品详情和搜索系统的开发.我们思考一下,是否存在问题? 商品的原始数据保存在数据库中,增删改查都在数据库中完成. 搜索服务数据来源是索引库,如果 ...

  6. 01 . RabbitMQ简介及部署

    RabbitMQ简介 ​ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它 ...

  7. 01.RabbitMQ简单使用

    官网地址:https://www.rabbitmq.com/getstarted.html RabbitMQ 优点: 数据处理异步执行: 应用之间解耦: 流量削峰 1.docker 安装 Rabbit ...

  8. RabbitMQ入门-5.6-课堂笔记-01

  9. 昨晚12点,女朋友突然问我:你会RabbitMQ吗?我竟然愣住了。

    01为什么要用消息队列? 1.1 同步调用和异步调用 在说起消息队列之前,必须要先说一下同步调用和异步调用. 同步调用:A服务去调用B服务,需要一直等着B服务,直到B服务执行完毕并把执行结果返回给A之 ...

  10. Go语言系列之RabbitMQ消息队列

    1. RabbitMQ是什么?   MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 生活场景: 1.其实我们在双11的时候,当我们凌晨大量的秒 ...

随机推荐

  1. html2canvas + jspdf导出pdf,文字重叠,样式不显示或者文字不显示

    先在html引入cdn <script src="https://html2canvas.hertzen.com/dist/html2canvas.js"></s ...

  2. js重复赋值 js数据交换 js调式方法

    重复赋值 对一个变量,对此赋值,存储数据 定义变量时对变量初始化 此时js语法规定,必须带有关键词var 或者let 或者const 之后使用变量时,不需要带有关键词 第一次定义变量,初始化变量,必须 ...

  3. P7322

    P7322 好神仙! \(\color{#5bc9}\text{提醒,本文有大量没有推到过程的式子,所以读者可以自己遮住先推一下}\) Inscription: 有一个长度为 \(k\) 的窗口,在一 ...

  4. MySQL数据库开发(1)

    数据库的概述 1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式, 它们都可以经过数字化后存入计算机. 在计 ...

  5. Css var 的基础使用

    Css var 语法 var(custom-property-name, value) - custom-property-name 必须 变量必须以 --开头 后面可以是英文.数字连接符,区分大小写 ...

  6. mysql 8.0 客户端

    1.mysql 8.0 command line client 2.mysql workbench

  7. Python连接Etcd集群基础教程

    1.背景介绍 最近接手了一个项目,项目是使用Python开发的,其中使用到了Etcd,但是项目之前开发的方式,只能够支持单节点连接Etcd,不能够在Etcd节点发生故障时,自动转移.因此需要基于现有e ...

  8. C#去除时间格式化之后中间的T字母

    需求是这样的, 前后端传参,然后后端序列化把字符串存在数据库. 然后发现时间类型的字段,序列化之后 ,有个字母T, DateTime dt = DateTime.Parse("2024-05 ...

  9. centos如何统计磁盘使用总量,以及cpu使用率

    剩余硬盘容量 T: df | awk '{print $4}' |sed 's/Available//g' |sed '/^\s*$/d' | awk '{sum+=$1} END {print su ...

  10. 关于kubesphere集群calico网络组件报错的修复

    最近公司的项目用到了Kubesphere,于是自己先在虚拟机上测试了一番,遇到了很多的问题,现将遇到的有关calico的问题记录一下 上一篇介绍了如何离线安装kubesphere v3.0,安装之后我 ...