最全RabbitMQ教程2-快速上手
发布日期:2021-04-30 21:03:25 浏览次数:125 分类:精选文章

本文共 4156 字,大约阅读时间需要 13 分钟。

RabbitMQ?????????

??RabbitMQ????

RabbitMQ ??? AMQP ??????????????????????????????????????????????????????????????????? RabbitMQ ??????

1. ???? (Virtual Host)

RabbitMQ ????????????????????????????? RabbitMQ ??????????????????? AMQP ????????????????????????? RabbitMQ ???????????????????????

2. ?? (Connection)

??? RabbitMQ ?????????????????????????Connection?? RabbitMQ ?????????????????Channel????????????

3. ?? (Channel)

??? RabbitMQ ??????????????????????????????????????????????????????????????????????????????????

4. ??? (Exchange)

???? RabbitMQ ????????????????????????????????????????RabbitMQ ??????????? fanout?????direct?????topic?????????????????????

5. ?? (Queue)

??? RabbitMQ ??????????????????????Durability???????Auto Delete?????????????????????????????????? Quorum ??????????????????????

??RabbitMQ????

RabbitMQ ??????????????? API ?????? Spring Boot ? Spring Cloud Stream ???????????? API?Spring Boot ? Spring Cloud Stream ?????????

1. ?? API ????

1.1 Maven ??

???????????? pom.xml ????????

com.rabbitmq
amqp-client
5.9.0

1.2 ??????

1.2.1 ????
ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");Connection connection = factory.newConnection();Channel channel = connection.createChannel();
1.2.2 ????
channel.queueDeclare("queueName", false, false, false, null);
1.2.3 ????
channel.basicPublish("", "queueName", null, message.getBytes("UTF-8"));
1.2.4 ????
??????????
channel.basicConsume("queueName", false, new Consumer() {    @Override    public void handle(String s, BasicMessage message) {        // ??????    }});
??????????
GetResponse response = channel.basicGet("queueName", false);if (response != null) {    byte[] body = response.getBody();    // ??????    channel.basicAck(response.getMessageId());}
????
channel.close();

1.3 ????

RabbitMQ ??????????????????????????????????????????????????????????

2. Spring Boot ??

2.1 Maven ??

org.springframework.boot
spring-boot-starter-amqp

2.2 ????

? application.properties ??? RabbitMQ ?????

spring.rabbitmq.host=127.0.0.1spring.rabbitmq.port=5678

2.3 ????

@SpringBootApplicationpublic class RabbitMQApplication {    @RabbitListener    public void receiveMessage(String message) {        System.out.println("??????" + message);    }    public static void main(String[] args) {        SpringApplication.run(RabbitMQApplication.class, args);    }}

2.4 ????

@SpringBootApplicationpublic class RabbitMQApplication {    @RabbitListener    @QueueBinding(value = "exchangeName", key = "routingKey")    public void receiveMessage(String message) {        System.out.println("??????" + message);    }    public static void main(String[] args) {        SpringApplication.run(RabbitMQApplication.class, args);    }}

3. Spring Cloud Stream ??

3.1 Maven ??

org.springframework.cloud
spring-cloud-starter-stream-rabbit

3.2 ????

@SpringBootApplicationpublic class RabbitMQApplication {    @RabbitTemplate    public void send(Message
message) { logger.info("?????{}", message); } public static void main(String[] args) { SpringApplication.run(RabbitMQApplication.class, args); }}

3.3 ????

@SpringBootApplicationpublic class RabbitMQApplication {    @RabbitListener    @Binding(key = "exchangeName")    public void receive(Message
message) { logger.info("??????{}", message); } public static void main(String[] args) { SpringApplication.run(RabbitMQApplication.class, args); }}

???????????

1. ????

RabbitMQ ????????????????Classic?? Quorum ???Quorum ???? Raft ??????????????????????

2. Poison Message ??

?????????????????Poison Message??RabbitMQ ??????????????????????????

3. ???????

RabbitMQ ?????????????????????????????????????????????????

4. ?????

RabbitMQ ??????????????????????????????? PLAIN ?????OAuth ?????????????

5. ??????

RabbitMQ ???????????????????????????????????????RabbitMQ ?????????????????????

????

RabbitMQ ???????????????????????????????????????????????????????????????????????????????? API?Spring Boot ?? Spring Cloud Stream ???RabbitMQ ??????????????????????????

上一篇:Leetcode--139. 单词拆分
下一篇:牛客网--单词倒排(Java)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2026年06月13日 17时29分50秒