zoukankan      html  css  js  c++  java
  • Rabbitmq 简单示例

    之前写了两篇,感觉对于入门的小伙伴,不太友好。

    所以这次,就写一个简单的。

    一,架包

    implementation("org.springframework.boot:spring-boot-starter-amqp:2.5.4")

    二,配置config

    spring.rabbitmq.host = 127.0.0.1
    spring.rabbitmq.port = 5672
    spring.rabbitmq.username = guest
    spring.rabbitmq.password = guest

    三,配置queuq-exchange--topic

    package com.tenyears.webAD.config.mq;
     
    import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
    import org.springframework.amqp.core.Binding;
    import org.springframework.amqp.core.BindingBuilder;
    import org.springframework.amqp.core.Queue;
    import org.springframework.amqp.core.TopicExchange;
    import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
    import org.springframework.amqp.rabbit.connection.ConnectionFactory;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.autoconfigure.amqp.RabbitProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
     
    /**
     * @description :
     * @auther Tyler
     * @date 2021/8/25
     */
     
    @Configuration
    @EnableApolloConfig
    public class RabbitMQConfig extends MqBaseConfig {
        public final static String my_queue= "my_queue";
        public final static String my_topic = "my_topic";
     
        //声明 queue
        @Bean
        public Queue MY_QUEUE() {
            return new Queue(my_queue,true);
        }
     
        //声明 topic
        @Bean
        TopicExchange exchange() {
            return new TopicExchange(my_topic);
        }
     
        // 绑定 queue , exchange, routing_key
        @Bean
        Binding bindingExchangeMessage() {
            return BindingBuilder.bind(AD_SCHEDULE_QUEUE()).to(exchange()).with(my_queue);
        }
     
     
    }

    主要缩明一下  routing_key 作为路由键,

    假设 改成  my_queue#,

    则可以匹配多个 queue,比如: my_queue1 , my_queue2............

    四,生产者

    @GetMapping(value = "test1")
    public String test1(@RequestBody String str) {
    //参数1:exchange
    //参数2:routeKey
    //参数3:消息
           rabbitTemplate.convertSendAndReceive(RabbitMQConfig.my_topic,RabbitMQConfig.my_queue , "123");
            return "已发送";
        }

    五,消费者

    @Component
    @Lazy(false)
    @RabbitListener(queues = RabbitMQConfig.my_queue)
    public class AdScheduleExtendHandler {
      
     
        @RabbitHandler
        public void test(String a)
        {
            System.out.println("=================="+a);
        }
     
    }
  • 相关阅读:
    SQL学习
    FOR XML PATH
    IOS学习网址
    weak nonatomic strong等介绍(ios)
    UVALive3045 POJ2000 ZOJ2345 Gold Coins
    UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers
    UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers
    UVA439 POJ2243 HDU1372 ZOJ1091 Knight Moves【BFS】
    UVA439 POJ2243 HDU1372 ZOJ1091 Knight Moves【BFS】
    UVA10905 Children's Game
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/15186709.html
Copyright © 2011-2022 走看看