微服务框架
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
SpringCloud微服务架构
文章目录
- 微服务框架
- SpringCloud微服务架构
- 16 SpringAMQP
- 16.2 入门案例的消息发送
- 16.2.1 直接开干
- 16.2.2 总结
16 SpringAMQP
16.2 入门案例的消息发送
16.2.1 直接开干
案例:利用SpringAMQP实现HelloWorld中的基础消息队列功能
流程如下:
-
在父工程中引入spring-amqp的依赖
-
在publisher服务中利用RabbitTemplate发送消息到simple.queue这个队列
-
在consumer服务中编写消费逻辑,绑定simple.queue这个队列
【1】引入AMQP 的依赖
因为publisher和consumer服务都需要amqp依赖,因此这里把依赖直接放到父工程mq-demo中:
<!--AMQP依赖,包含RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
【2】步骤2:在publisher中编写测试方法,向simple.queue发送消息
- 在publisher服务中编写application.yml,添加mq连接信息:
logging:
pattern:
dateformat: MM-dd HH:mm:ss:SSS
spring:
rabbitmq:
host: 1.13.13.44 # rabbitMQ 的服务IP地址
port: 5672 # 端口
username: itcast
password: 123321
virtual-host: /
- 在publisher服务中新建一个测试类,编写测试方法:
package cn.itcast.mq.spring;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.nio.channels.Pipe;
/**
* ClassName: SpringAmqpTest
* date: 2022/10/31 10:05
*
* @author DingJiaxiong
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSendMessage2SimpleQueue(){
String queueName = "simple.queue";
String message = "hello,Spring AMQP";
rabbitTemplate.convertAndSend(queueName,message);
}
}
OK, 直接运行测试
绿了!消息发送完成了,看看控制台
妙啊
直接在控制台看看是啥
OK,没问题,就是我们发送的消息
回顾一下
16.2.2 总结
什么是AMQP?
- 应用间消息通信的一种协议,与语言和平台无关。
SpringAMQP如何发送消息?
- 引入amqp的starter依赖
- 配置RabbitMQ地址
- 利用RabbitTemplate的convertAndSend方法