RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失

<context:property-placeholder location=“classpath:rabbitmq.properties”/>

<rabbit:connection-factory id=“connectionFactory” host=“${rabbitmq.host}”

port=“${rabbitmq.port}”

username=“${rabbitmq.username}”

password=“${rabbitmq.password}”

virtual-host=“${rabbitmq.virtual-host}”/>

<rabbit:admin connection-factory=“connectionFactory”/>

<rabbit:queue id=“spring_queue” name=“spring_queue” auto-declare=“true”/>

<rabbit:queue id=“spring_fanout_queue_1” name=“spring_fanout_queue_1” auto-declare=“true”/>

<rabbit:queue id=“spring_fanout_queue_2” name=“spring_fanout_queue_2” auto-declare=“true”/>

<rabbit:fanout-exchange id=“spring_fanout_exchange” name=“spring_fanout_exchange” auto-declare=“true”>

rabbit:bindings

<rabbit:binding queue=“spring_fanout_queue_1” />

<rabbit:binding queue=“spring_fanout_queue_2”/>

</rabbit:bindings>

</rabbit:fanout-exchange>

<rabbit:queue id=“spring_direct_queue” name=“spring_direct_queue” auto-declare=“true”/>

<rabbit:direct-exchange name=“spring_direct_exchange” >

rabbit:bindings

<rabbit:binding queue=“spring_direct_queue” key=“direct”></rabbit:binding>

</rabbit:bindings>

</rabbit:direct-exchange>

<rabbit:queue id=“spring_topic_queue_one” name=“spring_topic_queue_one” auto-declare=“true”/>

<rabbit:queue id=“spring_topic_queue_two” name=“spring_topic_queue_two” auto-declare=“true”/>

<rabbit:queue id=“spring_topic_queue_three” name=“spring_topic_queue_three” auto-declare=“true”/>

<rabbit:topic-exchange id=“spring_topic_exchange” name=“spring_topic_exchange” auto-declare=“true”>

rabbit:bindings

<rabbit:binding pattern=“one.*” queue=“spring_topic_queue_one”/>

<rabbit:binding pattern=“two.#” queue=“spring_topic_queue_two”/>

<rabbit:binding pattern=“three.#” queue=“spring_topic_queue_three”/>

</rabbit:bindings>

</rabbit:topic-exchange>

<rabbit:template id=“rabbitTemplate” connection-factory=“connectionFactory”/>

4.rabbitmq.properties:

rabbitmq.host=110.42.239.246

rabbitmq.port=5672

rabbitmq.username=guest

rabbitmq.password=guest

rabbitmq.virtual-host=spring

说明:这里免费提供rabbitmq连接方式给大家使用学习

5.ProducerTest:

package com.sky.springrabbitmqprodule;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.amqp.rabbit.core.RabbitTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = “classpath:spring-rabbitmq-producer.xml”)

public class ProducerTest {

@Autowired

private RabbitTemplate rabbitTemplate;

/**

  • 简单模式发消息

*/

@Test

public void testHelloWorld(){

rabbitTemplate.convertAndSend(“spring_queue”,“hello world spring…”);

}

/**

  • 广播模式发消息

*/

@Test

public void testFanout(){

rabbitTemplate.convertAndSend(“spring_fanout_exchange”,“”,“spring fanout…”);

}

/**

  • 路由模式发消息

*/

@Test

public void testDirect(){

rabbitTemplate.convertAndSend(“spring_direct_exchange”,“direct”,“spring Direct…”);

}

/**

  • 通配符模式发消息

*/

@Test

public void testTopics(){

rabbitTemplate.convertAndSend(“spring_topic_exchange”,“one.onekey”,“spring topic one…”);

rabbitTemplate.convertAndSend(“spring_topic_exchange”,“two.twokey.topic”,“spring topic two…”);

rabbitTemplate.convertAndSend(“spring_topic_exchange”,“three.threekey.topic”,“spring topic three…”);

}

}

2.消费者


1.项目架构图

在这里插入图片描述

代码如下(示例):

2.pom.xml依赖:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

com.sky

spring-rabbitmq-consumer

1.0-SNAPSHOT

org.springframework

spring-context

5.1.7.RELEASE

org.springframework.amqp

spring-rabbit

2.1.8.RELEASE

junit

junit

4.12

org.springframework

spring-test

5.1.7.RELEASE

org.apache.maven.plugins

maven-compiler-plugin

3.8.0

1.8

1.8

3.spring-rabbitmq-consumer.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:rabbit=“http://www.springframework.org/schema/rabbit”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

https://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/rabbit

http://www.springframework.o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值