windows安装rabbitMq与使用

这里安装的版本为

erlang: V12.3

rabbitMq:3.10.18

注意:需要找对应的版本

 

下载与安装erlang

原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang。

下载地址:http://www.erlang.org/downloads

 

 这里的otp显示26.1.2

 

 

 

双击启动,点next安装即可!

 

安装好后配置环境变量

变量名:ERLANG_HOME 变量值就是刚才erlang的安装地址,点击确定。

然后双击系统变量path,点击“新建”,将%ERLANG_HOME%\bin加入到path中。

 

 

 

查询erlang版本号

 

下载与安装rabbitMq

下载地址:https://www.rabbitmq.com/news.html

找到你要安装的版本,点击标题进入github中

 

这里安装的是3.10.18

注意:如果erlang与rabbitMq的版本不匹配,rabbitMq是安装不了的!

 

安装RabbitMQ管理插件

打开命令行cmd,输入RabbitMQ的sbin目录

rabbitmq-plugins enable rabbitmq_management

 

接着输入rabbitmq-server.bat  启动rabbitMq

 出现和上面相同的输出内容,代码启动成功,在浏览器访问 http://localhost:15672

代码配置端口为:5672

 

 

初始账号和密码如下:

Username:guest

Password:guest

 

 下面使用springboot整合rabbitmq实操

首先创建生产者,生产者发送消息,创建两个项目,然后消费者拿到消息去消费,整个流程就是这样子~

1.创建生产者

导入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

 

rabbitmq配置类

配置Exchange、Queue、及绑定交换机

@Configuration
public class RabbitmqConfig {

    /**
     * 交换机名称
     */
    public static final String ETAX = "etax";

    /**
     * 队列名称
     */
    public static final String QUEUE_COMPANY_NAME = "zerody.company-name";

    /**
     * 声明交换机
     *
     * @return
     */
    @Bean
    TopicExchange exchange() {
        return new TopicExchange(RabbitmqConfig.ETAX);
    }

    /*------------------------------------------------------*/

    @Bean
    public Queue customerLoansFailReason() {
        return new Queue(RabbitmqConfig.QUEUE_COMPANY_NAME, true);
    }

    @Bean
    public Binding bindingCustomerFailReasonQueue() {
        return BindingBuilder.bind(customerLoansFailReason()).to(exchange()).with(RabbitmqConfig.QUEUE_COMPANY_NAME);
    }

}

 

yml配置

server:
  port: 8081
spring:
  application:
    name: test-rabbitmq-producer
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
    virtualHost: /

 

生产者创建发送消息

这里直接写在测试类中

@SpringBootTest
class RabbitmqProducerApplicationTests {

    @Autowired
    RabbitTemplate rabbitTemplate;

    @Test
    public void Producer_topics_springbootTest() {

        //使用rabbitTemplate发送消息
        String message = "对象科技有限公司";

        /**
         * 参数:
         * 1、交换机名称
         * 2、routingKey
         * 3、消息内容
         */
        rabbitTemplate.convertAndSend(RabbitmqConfig.ETAX, RabbitmqConfig.QUEUE_COMPANY_NAME, message);
    }
}

 

发送成功

 

2.创建消费者

引入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

 

配置类

@Configuration
public class RabbitmqConfig {

    /**
     * 交换机名称
     */
    public static final String ETAX = "etax";

    /**
     * 队列名称
     */
    public static final String QUEUE_COMPANY_NAME = "zerody.company-name";

    /**
     * 配置交换机
     * @return
     */
    @Bean
    TopicExchange exchange() {
        return new TopicExchange(RabbitmqConfig.ETAX);
    }
    
    @Bean
    public Queue customerLoansFailReason() {
        return new Queue(RabbitmqConfig.QUEUE_COMPANY_NAME, true);
    }

}

 

yml

server:
  port: 8083
spring:
  application:
    name: test-rabbitmq-consumer
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
    virtualHost: /

 

监听类

@Slf4j
@Component
public class ReceiveHandler {

    @RabbitHandler
    @RabbitListener(queues = RabbitmqConfig.QUEUE_COMPANY_NAME)
    public void process(@Payload String object, Message message, Channel channel) {
        log.info("企业信息 :{} ", object);
        try {

        } catch (Exception e) {
            log.error("企业查找通知异常:{}", e.getMessage(), e);
        }
        try {
            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
        } catch (Exception e) {
            log.error("企业查找通知确认异常:", e);
        }
    }

}

 

监听成功

 

 rabbitmq控制台

 

 

 从这里可以看到交换机与路由已经绑定了,消息已经发送成功

如果发送或者监听消息出错,一定要仔细检查报错日志~

 

posted @ 2023-10-25 13:03  安详的苦丁茶  阅读(366)  评论(0编辑  收藏  举报