Erlang、RabbitMQ的下载安装
首先打开官网:http://www.rabbitmq.com/install-rpm.html。
先到右侧导航栏:
这其实就是rabbitmq和erlang的版本对应关系。
下载Erlang
下载地址:http://www.erlang.org/downloads。
Windows系统下载这个:OTP xx.x Windows 64-bit Binary File
下载后的文件:
双击打开安装:一路Next。如果是.net开发,勾上这个。
添加系统变量
最后添加环境变量
下载RabbitMQ
下载地址:http://www.rabbitmq.com/download.html。
下载后的文件:
双击安装:
安装成功:
打开:D:\SoftWare\RabbitMQ\rabbitmq_server-3.7.7\sbin:
双击rabbitmq-server.bat,启动rabbitmq服务:
在sbin目录打开cmd窗口输入:rabbitmqctl status,如若显示下图内容表示rabbitmq安装启动成功:
在cmd运行界面输入 rabbitmq-plugins enable rabbitmq_management 启用 management 插件。
在浏览器 http://127.0.0.1:15672 访问这个地址,是RabbitMQ的管理中心。
此时可以使用默认账户访问:
username:guest
passwd:guest
访问成功:
要从计算机中完全卸载RabbitMQ和Erlang,请执行以下操作
1、打开Windows控制面板。
2、双击“程序和功能”。
3、在当前安装的程序列表中,右键单击RabbitMQ Server,然后单击“卸载”。
4、在当前安装的程序列表中,右键单击“Erlang OTP”,然后单击“卸载”。
5、打开Windows任务管理器。
6、在任务管理器中,查找进程epmd.exe。 如果此进程仍在运行,请右键单击该进程,然后单击“结束进程”。
7、删除RabbitMQ和Erlang的所有安装目录。
8、删除文件C:\ Windows \ .erlang.cookie(如果存在)。
9、转到用户文件夹:C:\ Users \ [username],然后删除文件.erlang.cookie。删除
10、同样在User文件夹中,转到AppData \ Roaming \ RabbitMQ。 输入%appdata%\ Rabbitmq找到配置文件删除
11、将Log文件夹备份到安全位置,然后删除该文件夹。
SpringBoot 整合 RabbitMQ
需要创建一个消息发送者和一个消息接收者,演示一个最简单的单一发送者对单一接收者项目。
创建消息接收者
pom.xml 配置
<!-- 添加springboot对amqp的支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
application.yml配置
spring:
application:
name: springboot-rabbit-sender
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
virtual-host: /
创建消息接收类
@Component public class HelloReceive { /** * 该注解是监听队列的,当队列有消息的时候,它会自动获取。 * 标注在类上面表示当有收到消息的时候,就交给 @RabbitHandler 的方法处理,具体使用哪个方法处理,根据 MessageConverter 转换后的参数类型 */ @RabbitListener(queues = RabbitSenderConf.QUEUE) public void receive(String msg) { System.err.println("消费者收到了一个消息 : " + msg + " " + new Date().getTime()); } }
创建启动类
@SpringBootApplication public class RabbitReceiveApplication { public static void main(String[] args) { SpringApplication.run(RabbitReceiveApplication.class); } }
创建消息发送者
pom.xm 文件和 application.yml 配置与接收者一样
创建配置类
/** * 该类初始化创建队列、转发器,并把队列绑定到转发器 */ @Configuration public class RabbitSenderConf { public static final String QUEUE = "queue"; /** * 创建一个队列 * Queue 可以有4个参数 * 1.队列名 * 2.durable 持久化消息队列,rabbitMQ重启的时候不需要创建新的队列,默认true * 3.auto-delete 表示消息队列没有在使用时将被自动删除,默认是false * 4.exclusive 表示该消息队列是否只在当前connection生效,默认是false */ @Bean public Queue queue() { return new Queue(QUEUE, true); } }
创建消息发送类
@RestController public class HelloSender { @Autowired private AmqpTemplate template; @GetMapping("/send") public void send(String msg) { // 将消息队列存入rabbitMQ的消息队列里 template.convertAndSend(RabbitSenderConf.QUEUE, msg); System.err.println("生产者生产了一个消息 : " + msg + " " + new Date().getTime()); } }
创建启动类
@SpringBootApplication public class RabbitSenderApplication { public static void main(String[] args) { SpringApplication.run(RabbitSenderApplication.class); } }
启动发送者和接收者
在浏览器地址栏中访问发送接口。
消息接收者的控制台会打印生产者发送来的消息。