博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RabbitMQ预研
阅读量:7120 次
发布时间:2019-06-28

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

概述

项目的部分功能重构计划引入消息中间件,现将安装RabbitMQ以及通过SpringBoot集成的过程进行记录。

安装

本人使用环境:CentOS7

1.erlang安装

官网地址: https://www.erlang-solutions.com/resources/download.html推荐按照Installation using repository指引安装,最后一步选择    sudo yum install erlang

遇到的问题:

Q1:从官网下载rpm包为esl-erlang,安装RabbitMQ时需要依赖erlang,会报找不到依赖。

看官网解释是:other packages have dependencies on "erlang", not "esl-erlang".但未在官网找到erlang包下载页,在rabbit官网上看到推荐的下载地址:https://bintray.com/rabbitmq-erlang/rpm/erlang也无法访问(好像是在维护),所以直接通过仓库下载安装。

2.RabbitMQ安装

1)安装前注意版本要与erlang匹配版本匹配:http://www.rabbitmq.com/which-erlang.html2)官网地址:http://www.rabbitmq.com/install-rpm.html推荐按Using Bintray Yum Repository指引安装最后:    sudo yum install rabbitmq-server.noarch3)设置开机启动    chkconfig rabbitmq-server on4)关于修改数据库或日志地址要注意修改文件所属用户以及配置信息。    Note: The server is set up to run as system user rabbitmq. If you change the location of the node database or the logs, you must ensure the files are owned by this user (and also update the environment variables).5)使用web管理插件    rabbitmq-plugins enable rabbitmq_management    访问地址为服务器地址: 156726)默认用户 guest/guest (只能在本机访问),我们新建一个    rabbitmqctl add_user admin admin    设置下权限    rabbitmqctl set_user_tags admin administrator

使用SpringBoot集成

1.引入依赖

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

2.配置信息

clipboard.png

3.队列配置

clipboard.png

4.发送工具类

clipboard.png

5.接收者

clipboard.png

6.测试

clipboard.png

遇到的问题:

Q1:

Caused by: java.net.ConnectException: Connection timed out: connect

产生原因:未开启5672端口访问权限

解决方法:
不同环境修改防火墙限制方式不太一样,以cs7为例
firewall-cmd --permanent --add-port=5672/tcp
Q2:

Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method
(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user 'admin', class-id=10, method-id=40)

产生原因:新建的admin用户未授予访问权限

clipboard.png

解决办法:

可以使用命令添加权限,但使用管理界面会更方便
点击用户列表上用户名,进入该用户详情页

clipboard.png

添加访问权限就可以了。

这一小节主要参考spring-boot官方文档
Part IV. Spring Boot features
-->33 Messaging
-->33.2 AMQP

小结

这篇笔记内容比较少,只是简单的写了下安装与集成的过程。我想记录的其实是一个学习的思路,当遇到未接触过的技术想要尝试时,尽量按照官方文档进行安装,可以少走很多弯路。(毕竟现在翻译工具很发达,博客陈旧且多坑)sring-boot这种框架的存在让我们集成变得非常的简单。前人的努力使我们能更多的将精力放在研究技术本身,学习设计思想,以及与业务场景进行结合,更好的解决遇到的问题或提升用户体验。对于RabbitMQ的基础概念以及高级使用等我研究一段时间再写点笔记,当然也希望看到大佬们能多分享在项目中使用到的框架或中间件。结合业务场景的技术选型才是我等菜鸟更想要去了解的。感觉自己可能有些步骤走了弯路,望看到的大佬指出。有按上述步骤进行尝试的小伙伴也请将遇到的问题在下方留言,一起来解决。

转载地址:http://mriel.baihongyu.com/

你可能感兴趣的文章
CF915E Physical Education Lessons(珂朵莉树)
查看>>
洛谷P5050 【模板】多项式多点求值
查看>>
第十章:基本数据结构(2)
查看>>
php处理管道文件流
查看>>
Centos 6 搭建安装 Gitlab
查看>>
2012.02.13(rtsp)
查看>>
关于设置安卓屏幕的显示方向
查看>>
面试题10-二进制中1的个数
查看>>
cmd 查看域名对应的 IP
查看>>
LED流水灯程序——小白的单片机笔记
查看>>
sysdate
查看>>
Docker的主要作用
查看>>
SpringMVC4 + Spring + MyBatis3 【转】
查看>>
责任链模式
查看>>
基础笔记
查看>>
swift网络数据请求方法
查看>>
JQuery判断radio是否选中并获取选中值的示例代码
查看>>
OracleHelper
查看>>
mysql数据库学习——5,数据类型,字符集和校对
查看>>
php万年历
查看>>