javascript
centos安装rabbitmq_【SpringBoot MQ系列教程】RabbitMq 初体验
mq 在異步解耦削峰的優(yōu)勢(shì)非常突出,現(xiàn)在很多的項(xiàng)目都會(huì)用到,掌握 mq 的知識(shí)點(diǎn),了解如何順暢的使用 mq,可以說(shuō)是一個(gè)必備的職業(yè)技能點(diǎn)了
接下來(lái)我們進(jìn)入 rabbitmq 的學(xué)習(xí)過(guò)程
I. 環(huán)境準(zhǔn)備
在測(cè)試之前,需要安裝 rabbitmq,下面分別給出 mac + centos 的安裝教程
1. mac 安裝
安裝命令
brew install rabbitmq## 進(jìn)入安裝目錄 cd /usr/local/Cellar/rabbitmq/3.7.5# 啟動(dòng) brew services start rabbitmq # 當(dāng)前窗口啟動(dòng) rabbitmq-server啟動(dòng)控制臺(tái)之前需要先開(kāi)啟插件
./rabbitmq-plugins enable rabbitmq_management進(jìn)入控制臺(tái): http://localhost:15672/
用戶名和密碼:guest,guest
2. centos 安裝
安裝命令
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插件開(kāi)啟
rabbitmq-plugins enable rabbitmq_management # 啟動(dòng) rabbitmq-server -detached3. 配置
添加賬號(hào),設(shè)置權(quán)限
## 添加賬號(hào) ./rabbitmqctl add_user admin admin ## 添加訪問(wèn)權(quán)限 ./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" ## 設(shè)置超級(jí)權(quán)限 ./rabbitmqctl set_user_tags admin administrator4. 項(xiàng)目環(huán)境
接下我們創(chuàng)建一個(gè) SpringBoot 項(xiàng)目,用于簡(jiǎn)單的體驗(yàn)一下 rabbitmq 的發(fā)布和消費(fèi)消息
- springboot 版本為2.2.1.RELEASE
- rabbitmq 版本為 3.7.5
依賴配置文件 pom.xml
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version> </properties><dependencies><dependency><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> </dependencies><build><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></pluginManagement> </build> <repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/libs-snapshot-local</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/libs-milestone-local</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-releases</id><name>Spring Releases</name><url>https://repo.spring.io/libs-release-local</url><snapshots><enabled>false</enabled></snapshots></repository> </repositories>在application.yml配置文件中,添加 rabbitmq 的相關(guān)屬性
spring:rabbitmq:virtual-host: /username: adminpassword: adminport: 5672II. 實(shí)例演示
接下來(lái)我們看一個(gè)hello world版本的 rabbitmq 的使用姿勢(shì),一個(gè)簡(jiǎn)單發(fā)布消息、消費(fèi)消息
1. 發(fā)布消息
消息發(fā)布,我們主要借助AmqpTemplate來(lái)實(shí)現(xiàn)
@Component public class PublishDemo {@Autowiredprivate 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;} }上面的 case 中,主要方法在于amqpTemplate#convertAndSend,第一個(gè)參數(shù)為 exchangeName, 第二個(gè)為 routingKey
常量配置如下
class Pkg {final static String exchange = "topic.e";final static String routing = "r";final static String queue = "topic.a"; }2. 消費(fèi)消息
消費(fèi)消息,需要指定 Queue,通過(guò) routingKey 綁定 exchange,如下
@Service public class ConsumerDemo {@RabbitListener(bindings = @QueueBinding(value = @Queue(value = Pkg.queue, durable = "false", autoDelete = "true"),exchange = @Exchange(value = Pkg.exchange, ignoreDeclarationExceptions = "true",type = ExchangeTypes.TOPIC), key = Pkg.routing))public void consumer(String msg) {System.out.println("consumer msg: " + msg);} }3. 測(cè)試 demo
寫一個(gè)簡(jiǎn)單的 rest 接口,用于接收參數(shù),發(fā)布消息到 mq,并被ConsumerDemo消費(fèi)
@RestController public class PubRest {@Autowiredprivate PublishDemo publishDemo;@GetMapping(path = {"", "/", "/publish"})public String publish(String name) {return publishDemo.publish2mq(name);} }II. 其他
0. 項(xiàng)目
- 工程:https://github.com/liuyueyi/spring-boot-demo[1]
- 源碼: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/300-rabbitmq[2]
1. 一灰灰 Blog
盡信書則不如,以上內(nèi)容,純屬一家之言,因個(gè)人能力有限,難免有疏漏和錯(cuò)誤之處,如發(fā)現(xiàn) bug 或者有更好的建議,歡迎批評(píng)指正,不吝感激
下面一灰灰的個(gè)人博客,記錄所有學(xué)習(xí)和工作中的博文,歡迎大家前去逛逛
- 一灰灰 Blog 個(gè)人博客 https://blog.hhui.top[3]
- 一灰灰 Blog-Spring 專題博客 http://spring.hhui.top[4]
http://weixin.qq.com/r/FS9waAPEg178rUcL93oH (二維碼自動(dòng)識(shí)別)
總結(jié)
以上是生活随笔為你收集整理的centos安装rabbitmq_【SpringBoot MQ系列教程】RabbitMq 初体验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: websocket 获取连接id_Swo
- 下一篇: 主进程中发生javascript错误_你