rabbitmq基础-java-1、快速入门

1、AMQP

        AMQP,即Advanced Message Queuing Protocol(高级消息队列协议),一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件传递消息,不受客户端/中间件不同产品、不同开发语言等条件的限制。该协议是一种二进制协议,提供客户端应用于消息中间件之间异步、安全、高效的交互。相对于我们常见的REST API,AMQP更容易实现,可以降低开销,同时灵活性高,可以轻松的添加负载平衡和高可用性的功能,并保证消息传递,在性能上AMQP协议也相对更好一些。

2、Java实例-简单模式(Simple Mode)

        简单模式(Simple Mode):这是最基本的消息模型,其中生产者将消息发送到队列,消费者从中获取消息并进行处理。在这种模式下,每个消息只能由一个消费者处理,但可以实现多个任务并行处理。

2.1、项目结构-聚合工程

rabbitmq基础-java-1、快速入门_第1张图片

2.2、导包-主pom



    4.0.0

    cn.itcast.demo
    mq-demo
    1.0-SNAPSHOT
    
        publisher
        consumer
    
    pom

    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.12
        
    

    
        8
        8
    

    
        
            org.projectlombok
            lombok
        
        
        
            org.springframework.boot
            spring-boot-starter-amqp
        
        
        
            org.springframework.boot
            spring-boot-starter-test
        
        
        
            com.fasterxml.jackson.dataformat
            jackson-dataformat-xml
        
    

2.3、生产者publisher-pom



    
        mq-demo
        cn.itcast.demo
        1.0-SNAPSHOT
    
    4.0.0

    publisher

    
        8
        8
    

2.4、消费者consumer-pom



    
        mq-demo
        cn.itcast.demo
        1.0-SNAPSHOT
    
    4.0.0

    consumer

    
        8
        8
    

3、yml配置

3.1、生产者publisher-yml

logging:
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
spring:
  rabbitmq:
    host: 192.168.18.11
    port: 5672
    virtual-host: /
    username: guest
    password: guest

3.2、消费者consumer-yml

logging:
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
spring:
  rabbitmq:
    host: 192.168.18.11
    port: 5672
    virtual-host: /
    username: guest
    password: guest

4、生产者发送消息

@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void testSendMessage2Queue() {
        String queueName = "hello.queue1";
        String msg = "hello, amqp!";
        rabbitTemplate.convertAndSend(queueName,msg);
    }
}

5、消费者接收消息

@Slf4j
@Component
public class MqListener {

    @RabbitListener(queues = "hello.queue1")
    public void listenSimpleQueue(String msg){
        System.out.println("消费者收到了simple.queue的消息:【" + msg +"】");
    }
}

6、测试

6.1、发消息

rabbitmq基础-java-1、快速入门_第2张图片

6.2、查看消息

rabbitmq基础-java-1、快速入门_第3张图片

6.3、接收消息

rabbitmq基础-java-1、快速入门_第4张图片

你可能感兴趣的:(rarbbitmq,java)