十次方第五天[Java專案]
阿新 • • 發佈:2018-12-29
大家需要十次方專案的視訊可以關注我的微信公眾號,
訊息中介軟體RabbitMQ
win環境下的下載與安裝
- 下載並安裝Eralng 因為RabbitMQ是由Eralng語言開發的,所有要有這個環境
http://erlang.org/download/
- 下載並安裝RabbitMQ
http://www.rabbitmq.com/install-windows.html
安裝的過程中資料夾不能有中文和空格,安裝後window服務中就存在了RabbitMQ了,並且是啟動狀態
- 安裝管理介面(外掛) 進入RabbitMQ安裝目錄的sbin目錄,輸入命令
rabbitmq-plugins enable rabbitmq_management
- 開啟瀏覽器;
http://127.0.0.1:15672
docker環境下的下載與安裝
- 下載映象
docker search rabbitmq.
docker pull rabbitmq:management
- 建立容器
docker run -di --name=tensquare_rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management
- 訪問
htp://你的ip:15672/#/
直接模式(Direct)
就是直接走預設的交換器,意思就是沒有交換器,是一個空字串的交換器
建立一個佇列
name : itcast
Duribility : 是否持久化
Auto delete : 是否自動刪除
- 通過程式碼測試,建立一個maven模組,匯入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
配置相應的配置檔案和啟動類
- 編寫測試類(生產者)
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RabbitApplication.class)
public class ProductTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void sendMsg(){
rabbitTemplate.convertAndSend("itcast","直接模式測試");
}
}
- 消費者
@Component
@RabbitListener(queues = "itcast")
public class Customer1 {
@RabbitHandler
public void getMsg(String msg){
System.out.println("直接模式消費" + msg);
}
}
分裂模式(Fanout)
當我們需要把一個訊息發到多個佇列時,需要使用這種模式,這個用的不是很多
- 首先先建立一個佇列,型別是fanout,名字是chuanzhi
- 繫結之前定義好的佇列,再新增幾個佇列,方便測試
- 測試程式碼
@Test
public void senFanOutdMsg(){
rabbitTemplate.convertAndSend("chuanzhi","","分裂模式測試");
}
主題模式模式(topic)
主題模式和分裂模式的區別就是多了routing key(匹配規則)
- 測試程式碼
@Test
public void senTopicdMsg(){
rabbitTemplate.convertAndSend("topictest","good.abc","主題模式測試");
}
大家需要十次方專案的視訊可以關注我的微信公眾號,
大家有需要專案視訊的可以加我微信yan1242269186