首页 > 其他分享 >RabbitMQ

RabbitMQ

时间:2023-11-21 11:58:57浏览次数:36  
标签:false guest factory RabbitMQ connection new channel

安装

# 拉取镜像
docker pull rabbitmq:management
# 创建容器
docker run -e RABBIT_DEFAULT_USER=root -e RABBIT_DEFAULT_PASS=root --name rabbitmq_mg -p 15672:15672 -p 5672:5672 -d rabbitmq:management
# 访问管理页面
# http://10.10.0.100:15672
# root:root(如果登录失败,则选择guest:guest)

使用AMQP的Java客户端编程实现消息的发送和接收

1.新建maven项目

pom文件引入amqp的依赖

<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.9.0</version>
        </dependency>

2.发布消息

PublisherTest.java
	ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("10.10.0.100");
        factory.setPort(5672);
        factory.setVirtualHost("/");
        factory.setUsername("guest");
        factory.setPassword("guest");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String message = scanner.next();
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            System.out.println("[x]发送'" + message + "'");
        }
        channel.close();
        connection.close();

3.消费消息

ConsumerTest.java
	ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("10.10.0.100");
        factory.setPort(5672);
        factory.setVirtualHost("/");
        factory.setUsername("guest");
        factory.setPassword("guest");

        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        channel.basicConsume(QUEUE_NAME, true, new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws
                    IOException {
                //处理消息
                String message = new String(body);
                System.out.println(" [x] Received '" + message + "'");
            }
        });
        System.out.println(" [*] Waiting for messages. To exit press CTRL+C");

标签:false,guest,factory,RabbitMQ,connection,new,channel
From: https://www.cnblogs.com/beast-king/p/17846214.html

相关文章

  • .net fromwork连接rabbitmq发布消息
    1、创建连接工厂类varfactory=newRabbitMQ.Client.ConnectionFactory(){HostName="120.237.72.46",UserName="admin",Password="admin",Port=5672,VirtualHost="/"};2、创建连接并发送数据using(varconnect......
  • 如何在 Linux 上部署 RabbitMQ
    如何在Linux上部署RabbitMQ目录如何在Linux上部署RabbitMQ安装Erlang从预构建的二进制包安装从源代码编译ErlangRabbitMQ的安装使用RabbitMQAssistant连接RabbitMQAssistant是一款优秀的RabbitMQ可视化管理工具,提供丰富的管理功能。下载地址:https://www.redisan......
  • RabbitMQ安装,操作
    rabbitMQ安装安装环境ubuntu安装erlang语言环境aptinstallerlang-nox安装rabbitmq-serverwget-O-https://www.rabbitmq.com/rabbitmq-release-signing-key.asc|sudoapt-keyadd-aptupdateaptinstallrabbitmq-server查看rabbitMQ启动状态systemctlstatusr......
  • docker 部署 rabbitmq集群
    rabbitmq集群:pull:dockerpullrabbitmq普通模式(默认):what:集群中各节点有相同的队列结构,但消息只会存在于集群中的一个节点。对于消费者来说,若消息进入A节点的Queue中,当从B节点拉取时,RabbitMQ会将消......
  • RabbitMQ六大核心(六大模式)-- 4. Routing(路由模式)直接交换机
    交换机绑定的RoutingKey不同,只给某个队列发消息多重绑定:绑定同一个队列的RoutingKey不同//生产者importcn.soldat.utils.RabbitMqUtilsimportcom.rabbitmq.client.BuiltinExchangeTypeimportjava.util.*objectDirectLogs{constvalEXCHANGE_NAME="direct_logs"......
  • RabbitMq
    为啥要用rabbitmq1,松耦合结构(解耦,异步处理,缓冲能力,伸缩性,扩展性)2,性能是万级的rabbitmq的生产者:rabbitmq的生产者如何保证数据安全问题:1,发送者确认2,失败者通知rabbitmq的消费者rabbitmq的消费者如何保证数据安全问题:1,手动消费确认rabbitmq与springboot的集成:<dependency>......
  • Spring Boot中使用RabbitMQ完成延迟功能
    MQ-消息队列简单来说就是将“消息”放到“队列”中,然后慢慢处理队列中的消息。完成延迟功能总体的思路是将消息放到队列中,为消息设置过期时间,不直接处理这个队列中的消息,等到消息过期,将它转到另一个队列进行处理,从而完成延迟功能。基本概念1.队列队列是RabbitMQ的内部对象,用......
  • Springboot整合RabbitMQ值Direct交换机
    常用的交换机有以下三种,因为消费者是从队列获取信息的,队列是绑定交换机的(一般),所以对应的消息推送/接收模式也会有以下几种:DirectExchange 直连型交换机,根据消息携带的路由键将消息投递给对应队列。大致流程,有一个队列绑定到一个直连交换机上,同时赋予一个路由键routingkey......
  • 安装RabbitMQ
    1)安装虚拟机环境:Mac+ParallesDesktop16+Debian10Arm64IP地址:166.166.166.92配置源:debhttps://mirror.sjtu.edu.cn/debian/bullseyemaincontribnon-freedeb-srchttps://mirror.sjtu.edu.cn/debian/bullseyemaincontribnon-freedebhttps://mirror.sjtu.edu.cn/d......
  • Rabbitmq消息队列:Topic话题模式简单应用
    一、生产者声明topic话题模式的交换机,分别发送几条消息到不同的路由key。packagetest.topic;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importutils.RabbitmqConUtil;publicclassGive{//定义交换机privatefinals......