[【SpringBoot MQ系列教程】RabbitMq初体验](https://mp.weixin.qq.com/s/Oq7NsHB9nrDG_4W8KKMD0A)
mq在异步解压缩压缩压缩尖锐峰的优势非常突出,现在很多的项目都会用到,掌握mq的知识点,了解如何顺畅的使用mq,可以说是必不可少的职业技能点了
接下来我们进入rabbitmq的学习过程
<!-更多->
I.环境准备
在测试之前,需要安装rabbitmq,下面分别指定mac + centos的安装教程
1. mac安装
安装命令
BREW安装的RabbitMQ的##进入安装目录CD /usr/local/Cellar/rabbitmq/3.7.5#启动BREW服务启动的RabbitMQ的#当前窗口启动的RabbitMQ的服务器```启动控制台之前需要先开启插件```庆典./rabbitmq-plugins使rabbitmq_management ```进入控制台:HTTP://本地主机:15672 /用户名和密码:客人,客人### 2的的centos的安装安装命令` ``sh yum install erlang wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm yum install rabbitmq-server-3.6。 15- 1.el6 .noarch.rpm ```插件开启``` SH的RabbitMQ的的-插件使rabbitmq_management#启动的RabbitMQ的的服务器-detached ``` ### 3.配置添加账号,设置权限
bash ##添加账号./rabbitmqctl add_user管理员admin ##添加访问权限./rabbitmqctl set_permissions -p“ /” admin“。*”“。*”“。*” ##设置超级权限。/rabbitmqctlset_user_tags管理员的`### 4.项目环境接下我们创建了一个SpringBoot项目,用于简单的体验一下Rabbitmq的发布和消费消息-springboot版本为`2.2.1.RELEASE` -RabbitMQ的版本为`3.7。5 `依赖配置文件的pom.xml的```的XML <父> <的的groupId> org.springframework.boot </的的groupId> <artifactId的的>弹簧引导起动父</ artifactId的的> <版本> 2.2.1。释放</版本> < relativePath /> <!-从存储库中查找父级-> </父级> <属性> <project.build.sourceEncoding> UTF-8 </ project.build.sourceEncoding> <项目。 report.outputEncoding> UTF-8 </ project.reporting.outputEncoding> <java.version> 1.8 </ java.version> </ properties> <依赖关系> <依赖关系> <groupId>
org.springframework.boot </ groupId> <artifactId> spring-boot-starter-amqp </ artifactId> </ dependency> <dependency> <groupId> org.springframework.boot </ groupId> <artifactId> spring-boot-starter -web </ artifactId> </ dependency> </依靠> <build> <pluginManagement> <Plugin <<Plug> <groupId> org.springframework.boot </ groupId> <artifactId> spring-boot-maven-plugin </ artifactId> </插件> </插件> </ pluginManagement> </ build> <存储库> <存储库> <id>春天快照</ id> <name>春天快照</名称 > <URL> https:/ /repo.spring.io/libs-snapshot-local </ url> <快照> <已启用>true </启用> </快照> </合并> <组件> <id> spring-例程</ id> <name> Spring Milestones </ name> <url> https://repo.spring.io/ libs-milestone-local </网址>
<快照> <已启用>错误</已启用> </快照> </存储库> <存储库> <id> spring-releases </ id> <name> Spring Releases </ name> <url> https: //repo。spring.io/libs-release-local</ url> <快照> <已启用> false </启用> </ snapshots> </ repository> </ repositories> ```在`application.yml`配置文件中,添加Rabbitmq的相关属性```yml spring :Rabbitmq :虚拟主机: / 用户名:管理员密码:管理员端口:5672` ''
## II. 实例演示
接下来我们看一个`hello world`版本的 rabbitmq 的使用姿势,一个简单发布消息、消费消息
### 1. 发布消息
消息发布,我们主要借助`AmqpTemplate`来实现
```java
@Component
public class PublishDemo {
@Autowired
private AmqpTemplate amqpTemplate;
public String publish2mq(String ans) {
String msg = "hello world = " + ans;
System.out.println("publish: " + msg);
amqpTemplate.convertAndSend(Pkg.exchange, Pkg.routing, msg);
return msg;
}
}
上面的案例中,主要方法在于` amqpTemplate#convertAndSend ',第一个参数为exchangeName,第二个为routingKey
恒定配置如下
java 类Pkg { 最终静态字符串交换= “ topic.e” ; 最后的静态字符串路由= “ r” ; 最后的静态字符串队列= “ topic.a” ; } ```
2.消费消息
消费消息,需要指定队列,通过routingKey绑定绑定交换,如下
类型= ExchangeTypes 。主题),键= Pkg 。路由))公共无效消费者(字符串msg ){ 系统。出来。println (“消费者msg:” + msg ); } } ``
### 3.测试演示
写一个简单的休息接口,用于接收参数,发布消息到MQ,并被` ConsumerDemo `消费
```java
@RestController
public class PubRest {
@Autowired
private PublishDemo publishDemo;
@GetMapping(path = {"", "/", "/publish"})
public String publish(String name) {
return publishDemo.publish2mq(name);
}
}
二。其他
0.项目
- 工程:[ https://github.com/liuyueyi/spring-boot-demo ](https://github.com/liuyueyi/spring-boot-demo “ https://github.com/liuyueyi/spring-boot -演示”)-原始码:[ https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/300-rabbitmq ](https://github.com/liuyueyi/spring- boot -demo / tree / master / spring-boot / 300-rabbitmq” https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/300-rabbitmq ”)
1.一灰灰博客
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现错误或有更好的建议,欢迎批评指正,不吝感激
下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
- 一灰灰Blog个人博客[ https://blog.hhui.top ](https://blog.hhui.top “ https://blog.hhui.top ”)-一灰灰Blog-Spring主题博客[ http ://spring.hhui.top ](http://spring.hhui.top “ http://spring.hhui.top ”)