初学rabbitmq总结

1.windows安装rabbitmq

需准备两个软件 ,一定要注意二者之间的版本关系,否则安装一半还需要重新下载

otp_win64_20.2.exe(提取码:1234)

rabbitmq-server-3.7.4.exe(提取码:1234)

下图是版本对应关系:

先管理员权限运行安装otp_win64_20.2.exe的这个,一直下一步,然后在安装rabbitmq,接着一直下一步,直到安装完成,cmd命令进入

D:\worksoft\rabbitmq\mq\rabbitmq_server-3.7.4\sbin目录

执行命令:rabbitmq-plugins enable rabbitmq_management

重启rabbitmq,重启之前最好检查一下进程是否完全关闭,通过任务管理器查看erl开头进程,共两个,关掉,依然进入到rabbitmq下的sbin目录,双击启动rabbitmq-server.bat服务,出现如下形式即为启动成功,以后每次启动服务可直接双击该服务就可以了。

2.rabbitmq访问地址

http://127.0.0.1:15672/#/

默认用户名密码都是guest

3.登录之后

4.引入依赖

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

5.配置文件

spring:
  rabbitmq:
    username: rabbitmq
    password: 123456
    host: 127.0.0.1
    port: 5672
    virtual-host: /test     #设置的虚拟机
    listener:
      simple:
        acknowledge-mode: manual  #设置手动应答,不设置就是自动应答

6.创建配置类文件,在类上加@Configuration,目的是类启动的时候就加载,在这个类里面加三类东西

(1)exchage交换机

@Bean
public TopicExchange topicExchange001() {
    return new TopicExchange("test_success_exchange", true, false);
}
//通过该段代码生成了一个test_success_exchange交换机

(2)队列

//通过该段代码生成一个名为queue1的队列,实体类为testQueue
@Bean
public Queue testQueue(){
    return new Queue("queue1",true,false,false);
}

(3)队列和交换机绑定

//通过该段代码将交换机和队列进行绑定,关键路由为routekey
@Bean
public Binding bindQueueAndExchange(@Qualifier("testQueue") Queue queue, @Qualifier("topicExchange001") TopicExchange topicExchange){
    return BindingBuilder.bind(queue).to(topicExchange).with("routekey");
}

7.发送消息

(1)引入模板

@Autowired

private RabbitTemplate rabbitTemplate;

(2)调用

rabbitTemplate.convertAndSend("test_success_exchange","routekey","success is ok");

test_success_exchange:定义交换机                      

routekey:消费者和接收者之间的路由key

success is ok:发送的消息

8.接收消息

(1)接受消息的类上需加注解,实例化 如:@Service、@Component等

(2)加监听消息的注解,在方法上

@RabbitListener(containerFactory = "rabbitListenerContainerFactory",queues = "queue1")

public void getMessage(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG)long deliveryTag) throws IOException {

System.out.println("msgmsgmsgmsgmsg--------------"+msg);

channel.basicReject(deliveryTag,false);//手动应答

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值