java---消息队列 RabbitMQ

Posted 不吐西瓜籽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java---消息队列 RabbitMQ相关的知识,希望对你有一定的参考价值。

1、安装依赖环境

 在虚拟机上完成消息队列的安装和使用,虚拟机使用的是 WMware ,系统镜像使用的是 CentOS7 ,使用其他的环境也可以,之间的步骤类似。

 1.1、安装编译环境

 通过 yum 指令在线安装 g++ 编译环境。

yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make
gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

 1.2、安装语言环境

 因为 RabbitMQ 使用 Erlang 语言进行开发,因此必须安装语言环境。

  • 下载或上传对应的数据文件准备安装工作。

    erlang-18.3-1.el7.centos.x86_64.rpm
    socat-1.7.3.2-5.el7.lux.x86_64.rpm
    rabbitmq-server-3.6.5-1.noarch.rpm
    
  • 切换目录安装环境

    # 安装
    rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
    

 1.3、踩坑注意点

  如果出现如下错误:

  • 依赖环境出错: 说明当前的 gblic 版本太低,需要更新到最新的版本。

  • 首先查看当前的版本号:没啥用,知识单纯的看一下是不是版本较低

    strings /lib64/libc.so.6 | grep GLIBC
    
  • 然后对版本进行更新:至少是 2.15 的版本

    • 使用 yum 安装更新依赖

      sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlitedevel readline-devel tk-devel gcc make -y
      
    • 下载 rpm

    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-utils-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-static-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepoel6/epel-6-x86_64/glibc-2.17-55.fc20/nscd-2.17-55.el6.x86_64.rpm 
    
    • 安装 rpm 包:对刚才下载的 2.17 的版本进行安装更新
    sudo rpm -Uvh socat-1.7.3.2-1.1.el7.x86_64.rpm --force --nodeps
    
    • 再次使用指令进行版本查看即可发现版本已经更新到了 2.17 版本了,在去进行语言环境的安装。

 2、RabbitMQ 使用

 2.1、安装 RabbitMQ

# 安装
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

 2.2、修改默认的配置信息

  • 打开 rabbit.app 文件,这是配置文件,可在其中修改密码配置等等。现在只需要将 loopbask_users 中的<<'guest'>> 改成 guest 即可。

    vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
    

 2.3、开启管理界面

RabbitMQ 可以通过 web 进行管理,因此需要打开管理界面。

rabbitmq-plugins enable rabbitmq_managerment

 2.4、拷贝对应的配置文件

 需要将 RabbitMQ 的配置文件放置在 /etc 来使配置生效,不然直接打开控制界面将会显示没有在 /etc/rabbitmq 目录下加载到配置文件 rabbitmq.config

cd /usr/share/doc/rabbitmq-server-3.6.5/
cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

3、管理界面的使用

 3.1、用户角色

  • 在所有的配置工作都完了之后开启服务

    systemctl restart rabbitmq_server
    
  • 进入管理界面

    访问 http://ip地址:15672,进入管理控制台,默认提供一个用户来登陆,登陆后即可进入控制面板。

    username: guest
    password: guest
    

  • 进入 admin 界面

    都是些直观的窗口操作,这里就不在做叙述,不过需要注意用户身份标签 tag 的选择,在 3.3 会讲到。

 3.2、添加虚拟空间

  像 mysql 拥有数据库的概念并且可以指定⽤户对库和表等操作的权限一样,RabbitMQ 也有类似的权限管理; 在 RabbitMQ 中可以虚拟消息服务器 Virtual Host,每个 Virtual Hosts 相当于⼀个相对独⽴的 RabbitMQ 服务器,每个 Virtual Host 之间是相互隔离的。交换机、队列、消息不能互通,一般以 /name 进行定义。

  • 进入 Virtual Host 管理界面

  • 进行用户绑定

 3.3、 用户标签说明

  • 超级管理员(administrator)

    可登陆管理控制台,可查看所有的信息,并且可以对⽤户,策略(policy)进⾏操作。

  • 监控者(monitoring)

    可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使⽤情况,磁盘使⽤情况等)

  • 策略制定者(policymaker)

    可登陆管理控制台, 同时可以对policy进⾏管理。但⽆法查看节点的相关信息。

  • 普通管理者(management)

    仅可登陆管理控制台,⽆法看到节点信息,也⽆法对策略进⾏管理。

  • 其他

    ⽆法登陆管理控制台,通常就是普通的⽣产者和消费者。

以上是关于java---消息队列 RabbitMQ的主要内容,如果未能解决你的问题,请参考以下文章

java如何获取rabbitmq队列中消息数量

从 Java/Spring 中检索 RabbitMQ 队列中未确认消息的数量

Rabbitmq 消息队列

RabbitMQ学习笔记五:RabbitMQ之优先级消息队列

Java开发 - 消息队列之RabbitMQ初体验

JAVA03_21学习总结(RabbitMQ消息队列)