RabbitMQ

一、synopsis

 

 

 

 二、installation

1、windows

(1)install Erlang(otp_win64_20.2.exe)

(2)install RabbitMQ(rabbitmq-server-3.7.4.exe)

(3)start RabbitMQ Management(restart computer after first installed)

(2.1)RabbitMQ Service-start(by administrator)

 (2.2)rabbitmq_server-3.7.4\sbin-->"rabbitmq-plugins enable rabbitmq_management"

(2.3)rabbitmq_server-3.7.4\sbin-->">rabbitmqctl start_app"

 (3)UI

 

 2、linux-->docker

(1)docker pull rabbitmq:management

(2)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

(3)firewall-cmd --zone=public --permanent --add-port=15672/tcp

(4)firewall-cmd --zone=public --permanent --add-port=15671/tcp

(5)firewall-cmd --zone=public --permanent --add-port=5672/tcp

(6)firewall-cmd --zone=public --permanent --add-port=5671/tcp

(7)firewall-cmd --zone=public --permanent --add-port=25672/tcp

(8)firewall-cmd --zone=public --permanent --add-port=4369/tcp

(9)firewall-cmd --reload

 三、usage

1、environment

(1)create queue

(2)pom.xml

1 <dependency>
2     <groupId>org.springframework.boot</groupId>
3     <artifactId>spring-boot-starter-amqp</artifactId>
4 </dependency>

(3)application.yml

1 server:
2   port: 8099
3 spring:
4   rabbitmq:
5     host: 192.168.1.200

(4)RabbitApplication.java

1 @SpringBootApplication
2 public class RabbitApplication {
3     public static void main(String[] args) {
4         SpringApplication.run(RabbitApplication.class);
5     }
6 }

2、Direct Exchange

 

(1)Exchange:""

 (2)ProductTest.java

 1 @RunWith(SpringRunner.class)
 2 @SpringBootTest(classes = RabbitApplication.class)
 3 public class ProductTest {
 4     @Autowired
 5     private RabbitTemplate rabbitTemplate;
 6 
 7     @Test
 8     public void sendMsg(){
 9         rabbitTemplate.convertAndSend("Predator","Predator is so handsome!-Direct Exchange");
10     }
11 }

(3)CustomerFirst.java

1 @Component
2 @RabbitListener(queues = "Predator")
3 public class CustomerFirst {
4 
5     @RabbitHandler
6     public void getMsg(String msg){
7         System.out.println("customer message--Direct Exchange: "+msg);
8     }
9 }

3、Fanout

 

(1)add queue

  (2)add exchange

 (3)binding

 

(4)ProductTest.java

1 @Test
2     public void sendMsg(){
3         rabbitTemplate.convertAndSend("OceanSky","","Predator is so handsome!-Fanout Test");
4     }

(5)customers

(5.1)CustomerFirst.java 

1 @Component
2 @RabbitListener(queues = "Predator")
3 public class CustomerFirst {
4 
5     @RabbitHandler
6     public void getMsg(String msg){
7         System.out.println("Predator message--Direct Exchange: "+msg);
8     }
9 }

(5.2)CustomerSecond.java

1 @Component
2 @RabbitListener(queues = "darling")
3 public class CustomerSecond {
4 
5     @RabbitHandler
6     public void getMsg(String msg){
7         System.out.println("darling message--Fanout Test: "+msg);
8     }
9 }

(5.3)CustomerThird.java

1 @Component
2 @RabbitListener(queues = "ranran")
3 public class CustomerThird {
4 
5     @RabbitHandler
6     public void getMsg(String msg){
7         System.out.println("ranran message--Fanout Test: "+msg);
8     }
9 }

4、Topic

 

 

 

 (1)environment

 

  (2)ProductTest.java

1 @Test
2     public void sendMsg(){
3         rabbitTemplate.convertAndSend("DotSDot","Predator.handsome","Predator is so handsome!-Topic Mode");
4         rabbitTemplate.convertAndSend("DotSDot","xiaoli.darling","darling is so beautiful!-Topic Mode");
5         rabbitTemplate.convertAndSend("DotSDot","ranran.darling","ranran is so cute!-Topic Mode");
6     }

 

posted @ 2020-08-17 22:39  遥~  阅读(112)  评论(0编辑  收藏  举报