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服務:
在文件界面打開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);
}
}
啓動發送者和接收者
在瀏覽器地址欄中訪問發送接口。
消息接收者的控制檯會打印生產者發送來的消息。