centos安装rabbitmq_【SpringBoot MQ系列教程】RabbitMq 初体验

5799608d754e4d3e1442ac315de0cf3b.png
SpringBoot 系列教程之 RabbitMq 初体验​mp.weixin.qq.com
b69c80270d634f3ed31fd461eb3347ac.png

mq 在异步解耦削峰的优势非常突出,现在很多的项目都会用到,掌握 mq 的知识点,了解如何顺畅的使用 mq,可以说是一个必备的职业技能点了

接下来我们进入 rabbitmq 的学习过程

I. 环境准备

在测试之前,需要安装 rabbitmq,下面分别给出 mac + centos 的安装教程

1. mac 安装

安装命令

brew install rabbitmq## 进入安装目录
cd /usr/local/Cellar/rabbitmq/3.7.5# 启动
brew services start rabbitmq
# 当前窗口启动
rabbitmq-server

启动控制台之前需要先开启插件

./rabbitmq-plugins enable rabbitmq_management

进入控制台: 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

插件开启

rabbitmq-plugins enable rabbitmq_management
# 启动
rabbitmq-server -detached

3. 配置

添加账号,设置权限

## 添加账号
./rabbitmqctl add_user admin admin
## 添加访问权限
./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
## 设置超级权限
./rabbitmqctl set_user_tags admin administrator

4. 项目环境

接下我们创建一个 SpringBoot 项目,用于简单的体验一下 rabbitmq 的发布和消费消息

  • 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 的相关属性

spring:rabbitmq:virtual-host: /username: adminpassword: adminport: 5672

II. 实例演示

接下来我们看一个hello world版本的 rabbitmq 的使用姿势,一个简单发布消息、消费消息

1. 发布消息

消息发布,我们主要借助AmqpTemplate来实现

@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,第一个参数为 exchangeName, 第二个为 routingKey

常量配置如下

class Pkg {final static String exchange = "topic.e";final static String routing = "r";final static String queue = "topic.a";
}

2. 消费消息

消费消息,需要指定 Queue,通过 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. 测试 demo

写一个简单的 rest 接口,用于接收参数,发布消息到 mq,并被ConsumerDemo消费

@RestController
public class PubRest {@Autowiredprivate PublishDemo publishDemo;@GetMapping(path = {"", "/", "/publish"})public String publish(String name) {return publishDemo.publish2mq(name);}
}

a783282511e6cf60391e4277b76278a1.gif

II. 其他

0. 项目

  • 工程:https://github.com/liuyueyi/spring-boot-demo[1]
  • 源码: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/300-rabbitmq[2]

1. 一灰灰 Blog

尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现 bug 或者有更好的建议,欢迎批评指正,不吝感激

下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

  • 一灰灰 Blog 个人博客 https://blog.hhui.top[3]
  • 一灰灰 Blog-Spring 专题博客 http://spring.hhui.top[4]

http://weixin.qq.com/r/FS9waAPEg178rUcL93oH (二维码自动识别)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java rpc与webservice_RPC体系,RPC和WebService的区别详解

RPC和WebService的关系RPC(Remote Procedure Call)— 远程过程调用&#xff0c;是一个很大的概念, 它是一种通过网络从远程计算机程序上跨语言跨平台的请求服务&#xff0c;rpc能省略部分接口代码的开发&#xff0c;可以跨机器之间访问对象(java rmi)&#xff0c;可以有更方便的…

免费公测中-GPU数据库SQream DB正式上线云市场

业内领先的GPU 数据库服务SQream DB在阿里云云市场正式开启免费公测&#xff01;SQream DB是一款由阿里战略投资的以色列SQream公司提供&#xff0c;能够支撑海量数据高速分析的业内领先的GPU数据库。通过将计算密集型操作卸载到GPU上&#xff0c;与业界的解决方案相比&#xf…

唏嘘!2019榜单出炉:铁打的Python连续3年第一,它居然跌出前十?

IEEE Spectrum2019年度编程语言排行榜最近刚刚出炉&#xff0c;Python不出意外的又拿了个第一&#xff0c;但是意料之外的是&#xff0c;曾经大火的PHP&#xff0c;居然跌出了前十&#xff01;PHP曾被大家称为“世界上最好的编程语言”&#xff0c;去年排名第六&#xff0c;前年…

阿里云ECS家族再添新成员,推出密集计算型实例规格族ic5

去年&#xff0c;阿里云正式发布云服务器ECS企业级产品家族&#xff0c;推出面向173种企业应用场景的19款实例。适合在复杂的企业计算环境下&#xff0c;满足对于高性能、高可靠的计算需求。 时隔近一年&#xff0c;回看ECS企业级产品家族已经发展到30款实例&#xff0c;近日再…

findbugs插件_Intellij静态代码扫描插件SpotBugs

最近要做Java静态扫描的部分工作&#xff0c;之前是在Jenkins上使用findbugs插件完成的&#xff0c;但是由于现在Jenkins权限收回和Java代码权限的放开(我也搞不懂这两者的关联性)&#xff0c;目前打算在本地完成静态代码扫描工作。选来选取还是选择在Intellij中用插件来完成&a…

一张图看懂智联车管理云平台

智联车管理云平台&#xff08;IoV Command Center&#xff0c;简称IoV CC&#xff09;是阿里云面向智联车领域&#xff0c;专门推出的车辆全生命周期云端管理平台&#xff0c;旨在赋能车厂转型出行服务商&#xff0c;提高运营效率、降低自建成本。 传统模式下&#xff0c;车辆…

刨根问底 | 红遍全网的SD-WAN,到底是个啥?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 小枣君责编 | 阿秃作为一个热门概念&#xff0c;SD-WAN近年以来频繁地出现在我们的视野当中。很多人说&#xff0c;它是未来最具发展潜力的通信技术之一&#xff0c;极具商业价值。行业里的老牌通信设备商和运营商对它一致看…

centos7安装rabbitmq简单方式

安装rabbitmq前要准备的基础环境 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz tcp_wrappers需下载的安装文件如下 ## erlang wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.…

车联网上云最佳实践(一)

一、车联网行业特性讲解 最近两年车联网发展受到政府部门、科研院以及各大互联网巨头的广泛关注和积极推动。从应用来看&#xff0c;主要包括两种模式&#xff1a;一是前装模式&#xff08;即车辆出厂前安装&#xff09;&#xff0c;是乘用车厂主导或者与有相关能力的公司合作&…

python3 网站状态监控_基于python3监控服务器状态进行邮件报警

在正式的生产环境中&#xff0c;我们常常会需要监控服务器的状态&#xff0c;以保证公司整个业务的正常运转&#xff0c;常常我们会用到像nagios、zabbix这类工具进行实时监控&#xff0c;那么用python我们怎么进行监控呢&#xff1f;这里我们利用了python3调用psutil和yagmail…

车联网上云最佳实践(二)

云上对标架构及技术详解 我们对传统IDC应用架构进行分析之后&#xff0c;我们发现之前的系统架构存在一些不合理的地方导致了很多的痛点&#xff0c;为了解决这些痛点我们最终考虑上云。开始思考怎样利用云上产品来解决目前遇到的痛点。例如 为了解决我们自建IDC底层基础设施可…

java list 字段去重_java list 根据对象一个字段去重

1.主要思路就是根据从写equals 以及 hashCode 方法。代码如下&#xff1a;package com.bfd.unibase.modules.dataview.entity;import org.hibernate.validator.constraints.Length;import java.util.ArrayList;import java.util.Date;import java.util.HashSet;import java.uti…

Dubbo Mesh | 阿里巴巴中间件团队在 Service Mesh 的实践和探索(附PPT)

精彩观点导读&#xff1a; 我们去探索一项技术&#xff0c;并不会仅仅因为其先进性&#xff0c;而是因为我们目前遇到了一些无法解决的问题&#xff0c;而这项技术正好能解决这个问题。 所有软件最重要的使命不是满足功能要求&#xff0c;而是演进&#xff0c;从而持续成长。…

flutter 自定义键盘_掘金 AMA:听闲鱼客户端架构师邬吉风聊 Flutter 和移动端开发那些事...

第二十一期 AMA 掘金团队请来了闲鱼客户端架构师&#xff0c;《Fish-Redux》作者-- 邬吉风做了为期三天的 Ask Me Anything (AMA) 活动(活动已结束)。我们在此精选了一些来自用户的提问及邬吉风的回答。关于 邬吉风阿里花名吉丰&#xff0c; 《Fish-Redux》作者。现任闲鱼客户端…

网站常见问题1分钟定位(三)| 如何使用阿里云ARMS轻松重现用户浏览器问题

这是阿里中间件 ARMS 团队推出的 “网站常见问题1分钟定位”系列文章的第三篇&#xff0c;作者慕扉。 第一篇传送门 第二篇传送门 一、客户投诉不断&#xff0c;本地却无法重现&#xff1f; 页面加载较慢是用户经常会反馈的问题&#xff0c;也是前端非常关注的问题之一。…

国内首家!平头哥宣布开源RISC-V内核MCU芯片设计平台;IBM驳斥谷歌量子霸权主张;Facebook将赔偿350亿美元……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 小米 MIX4 概念图&#xff0…

把百度网站设为首页_大仙SEO:如何解决网站首页百度收录后被删除?【SEO案例】...

前天(5/20)看数据的时候&#xff0c;发现5118数据直线下降&#xff0c;跌的有些厉害&#xff0c;猜测网站应该出问题了。这个时候不要慌(内心实则慌的一批)&#xff0c;在等等看&#xff0c;会不会是百度自身的一些调整。算了分析分析网站吧&#xff01;site看网站数据&#xf…

技术选型:Sentinel vs Hystrix

这是围绕 Sentinel 的使用场景、技术对比和实现、开发者实践等维度推出的系列文章的第三篇。 第一篇回顾&#xff1a; Dubbo 的流量防卫兵 | Sentinel如何通过限流实现服务的高可用性 - 传送门 第二篇回顾&#xff1a; RocketMQ 的保险丝| Sentinel 如何通过匀速请求和冷…

“熬夜导致秃头”,因果关系推断说这话有问题!

扫码了解2019中国大数据技术大会&#xff08;https://t.csdnimg.cn/7yMh &#xff09;更多详情。“因果”&#xff0c;顾名思义&#xff0c;即“原因与结果”。“推理”则指“根据某个事件推导其他事件&#xff0c;即经过推测和推断得出结论的过程”。换句话说&#xff0c;就是…

大数据可视化html模板开源_8个可靠好用的开源数据可视化工具推荐

数据可视化在数据科学领域中发挥着重要的作用。在不清楚数据的情况下&#xff0c;要监视和调整数据以使其按照应有的方式执行并不容易。这就是数据可视化发挥作用的地方&#xff0c;它把收集到的数据放到一个可视的上下文中&#xff0c;使数据更容易找出模式、跟踪趋势等。但是…