Spring Boot整合Rabbitmq

一、使用Docker安装 Rabbitmq

前提:需要安装docker 
a)centos7      直接通过yum安装即可:yum install -y docker
b)centos6	rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
					yum install -y docker-io
					service docker start
c)Ubuntu 16	apt install docker.io -y

1.1 pull Rabbitmq官方镜像
注释:镜像搜索网站:https://hub.docker.com/
docker pull rabbitmq:3.7.7-management
1.2 创建容器并运行
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin-e RABBITMQ_DEFAULT_PASS=123456 -p 15672:15672 -p 5672:5672 rabbitmq:3.7.7-management
说明:
-d 后台运行容器;
–name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
–hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户 名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
5、使用命令:docker ps 查看正在运行容器
1.3 测试
在这里插入图片描述

二、Spring boot 代码中整合RabbitMq

2.1 添加Maven 对RabbitMq的依赖

	<!--引入rbmq依赖-->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-amqp</artifactId>
       </dependency>

2.2 配置application.yml
在这里插入图片描述

    spring:
      	application:
        	name: spirng-boot-rabbitmq
      	rabbitmq:
        	host: 47.22.335.145
        	port: 5672
        	username: admin
        	password: 123456

2.3 编写demo
在这里插入图片描述
2.3.1 RabbitmqConfig类

	import org.springframework.amqp.core.Queue;
	import org.springframework.context.annotation.Bean;
	import org.springframework.stereotype.Component;

	/**
	 * 〈一句话简述该类/接口的功能〉
	 * 配置队列的topic
	 * 创建人 Peng zhizhong
	 * 版本 @version 1.0
	 * 文件名 RabbitmqConfig
	 * 创建时间 2019/4/19  14:02
	 * 注意:需加上@Component 这个注解,不然spring 不会注入这个类,发生query()声明topic失败,消费者监听这个topic 的name 不存在。抛出异常
	 */
	@Component
	public class RabbitmqConfig {
	    /**
	     * @return
	     * 声明topic 的name
	     */
	    @Bean
	    public Queue query (){
	        return  new Queue("hello");
	    }
	} 

2.3.2HelloReceiver类

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
 * 〈一句话简述该类/接口的功能〉
 * 〈功能详细描述〉
 * 创建人 Peng zhizhong
 * 版本 @version 1.0
 * 文件名 HelloReceiver
 * 创建时间 2019/4/19  11:16
 */
@Component
@RabbitListener(queues = "hello")
public class HelloReceiver {

    @RabbitHandler
    public void process(String hello) {
        System.out.println("Receiver  : " + hello);
    }
} 

2.3.3 HelloSender类

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 〈一句话简述该类/接口的功能〉
 * 〈功能详细描述〉
 * 创建人 Peng zhizhong
 * 版本 @version 1.0
 * 文件名 HelloSender
 * 创建时间 2019/4/19  11:08
 */
@Component
public class HelloSender {
    @Autowired
    private AmqpTemplate  rabbitTemplate;

    public void send() {
        String context = "hello" + new Date();
        System.out.println("Sender : " + context);
        this.rabbitTemplate.convertAndSend("hello", context);
    }
} 

2.4 测试
在这里插入图片描述
OK.就先到这里吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值