Centos7安装RabbitMQ学习总结

  1. 名词解释:

    高可用:在时间上和速度上满足要求,例如在大并发条件下,能够不阻塞的执行程序,总之一句话:快就完了,对不对无所谓;一般从架构角度进行设计;

    高可靠:不能出错,例如银行扣费系统,需要无故障地持续运行,从来不崩溃,不出错,一定要稳定,不需要快;一般从代码逻辑角度进行设计;

  2. 安装环境:CentOS7

  3. 开始安装;

  4. 下载软件,需要依赖Erlang环境,需要socat,将两个软件拷贝到云主机上;

    erlang-23.3.3-1.el7.x86_64.rpm
    rabbitmq-server-3.8.15-1.el7.noarch.rpm

    socat支持多协议,用于协议处理,端口转发,rabbitmq依赖于socat,因此在安装rabbitmq前要安装socat;
    在这里插入图片描述

    [root@localhost ~]# cd /usr/local
    [root@localhost local]# ls
    app  bin  etc  games  include  lib  lib64  libexec  mysql5.7  redis  sbin  share  src  tomcat
    [root@localhost local]# cd app
    [root@localhost app]# ls
    erlang-23.3.3-1.el7.x86_64.rpm  rabbitmq-server-3.8.15-1.el7.noarch.rpm
    
  5. 将安装包拷贝到/usr/local/app/下面,进入到app目录下,执行安装命令;

    [root@localhost app]# rpm -Uvh erlang-23.3.3-1.el7.x86_64.rpm						## 下面报错,应该先安装socat
    警告:erlang-23.3.3-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID cc4bbe5b: NOKEY
    错误:依赖检测失败:
            erlang(x86-64) = 24.0.2-2.el7 被 (已安裝) erlang-examples-24.0.2-2.el7.x86_64 需要
    [root@localhost app]# rpm -Uvh rabbitmq-server-3.8.15-1.el7.noarch.rpm
    警告:rabbitmq-server-3.8.15-1.el7.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 6026dfca: NOKEY
    错误:依赖检测失败:
            socat 被 rabbitmq-server-3.8.15-1.el7.noarch 需要
    [root@localhost app]# sudo yum install -y socat					## 安装log很长,截取部分
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.sjtu.edu.cn
     * centos-sclo-rh: ftp.sjtu.edu.cn
     * centos-sclo-sclo: ftp.sjtu.edu.cn
     * epel: epel.mirror.angkasa.id
     * extras: ftp.sjtu.edu.cn
     * updates: ftp.sjtu.edu.cn
     正在解决依赖关系
     There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
    --> 正在检查事务
    ---> 软件包 socat.x86_64.0.1.7.3.2-2.el7 将被 安装
    --> 解决依赖关系完成
    		..........
    	已安装:
    	  socat.x86_64 0:1.7.3.2-2.el7                                                                                     
    
    完毕!
    [root@localhost app]# rpm -Uvh rabbitmq-server-3.8.15-1.el7.noarch.rpm
    警告:rabbitmq-server-3.8.15-1.el7.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 6026dfca: NOKEY
    准备中...                          ################################# [100%]
    正在升级/安装...
       1:rabbitmq-server-3.8.15-1.el7     ################################# [100%]
    
    
  6. 常用运行命令:

    [root@localhost app]# systemctl status rabbitmq-server.service				##查看rabbitmq运行状态
    ● rabbitmq-server.service - RabbitMQ broker
       Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    [root@localhost app]# systemctl start rabbitmq-server.service				## 启动rabbitmq服务
    [root@localhost app]# systemctl status rabbitmq-server.service				## 再次查看rabbitmq运行状态
    ● rabbitmq-server.service - RabbitMQ broker
       Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
       Active: active (running) since 一 2021-06-28 17:01:21 CST; 11s ago
     Main PID: 22848 (beam.smp)
       Status: "Initialized"
        Tasks: 28
       Memory: 78.1M
       CGroup: /system.slice/rabbitmq-server.service
               ├─22848 /usr/lib64/erlang/erts-12.0.2/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -M...
               ├─22867 erl_child_setup 32768
               ├─22899 /usr/lib64/erlang/erts-12.0.2/bin/epmd -daemon
               ├─22925 inet_gethost 4
               └─22926 inet_gethost 4
    [root@localhost app]# ps -ef | grep rabbitmq													## 查看rabbitmq服务进程状态
    rabbitmq 22848     1 11 17:01 ?        00:00:06 /usr/lib64/erlang/erts-12.0.2/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa  -noshell -noinput -s rabbit boot -boot start_sasl -lager crash_log false -lager handlers []
    rabbitmq 22867 22848  0 17:01 ?        00:00:00 erl_child_setup 32768
    rabbitmq 22899     1  0 17:01 ?        00:00:00 /usr/lib64/erlang/erts-12.0.2/bin/epmd -daemon
    rabbitmq 22925 22867  0 17:01 ?        00:00:00 inet_gethost 4
    rabbitmq 22926 22925  0 17:01 ?        00:00:00 inet_gethost 4
    root     23110 31701  0 17:02 pts/0    00:00:00 grep --color=auto rabbitmq
    
  7. 打开管理终端,使用到到端口号:15672;
    这时候应该访问:http://192.168.1.148:15672,但是实际上没有响应,主要是管理插件没有启动,需要启动管理插件;
    查看插件列表:

    [root@localhost app]# rabbitmq-plugins list					## 查看插件列表和启动状态
    Listing plugins with pattern ".*" ...
     Configured: E = explicitly enabled; e = implicitly enabled
     | Status: * = running on rabbit@localhost
     |/
    [  ] rabbitmq_amqp1_0                  3.8.15
    [  ] rabbitmq_auth_backend_cache       3.8.15
    [  ] rabbitmq_auth_backend_http        3.8.15
    [  ] rabbitmq_auth_backend_ldap        3.8.15
    [  ] rabbitmq_auth_backend_oauth2      3.8.15
    [  ] rabbitmq_auth_mechanism_ssl       3.8.15
    。。。。。。后面还有很多,找到:rabbitmq_management
    [root@localhost app]# rabbitmq-plugins enable rabbitmq_management					## 启动管理插件
    Enabling plugins on node rabbit@localhost:
    rabbitmq_management
    
  8. 启动管理终端;

  9. 遇到的问题,解决方法:

    Applying plugin configuration to rabbit@localhost...
    Stack trace: 
    
    ** (CaseClauseError) no case clause matching: {:could_not_start, :rabbitmq_management_agent, {:rabbitmq_management_agent, {{:shutdown, {:failed_to_start_child, :rabbit_mgmt_agent_sup, {:undef, [{:pg2, :create, [:management_db], []}, {:rabbit_mgmt_agent_sup, :maybe_enable_metrics_collector, 0, [file: 'src/rabbit_mgmt_agent_sup.erl', line: 36]}, {:rabbit_mgmt_agent_sup, :init, 1, [file: 'src/rabbit_mgmt_agent_sup.erl', line: 23]}, {:supervisor, :init, 1, [file: 'supervisor.erl', line: 330]}, {:gen_server, :init_it, 2, [file: 'gen_server.erl', line: 423]}, {:gen_server, :init_it, 6, [file: 'gen_server.erl', line: 390]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 226]}]}}}, {:rabbit_mgmt_agent_app, :start, [:normal, []]}}}}
    (rabbitmqctl 3.8.0-dev) lib/rabbitmq/cli/plugins/plugins_helpers.ex:210: RabbitMQ.CLI.Plugins.Helpers.update_enabled_plugins/2
    (rabbitmqctl 3.8.0-dev) lib/rabbitmq/cli/plugins/plugins_helpers.ex:107: RabbitMQ.CLI.Plugins.Helpers.update_enabled_plugins/4
    (rabbitmqctl 3.8.0-dev) lib/rabbitmq/cli/plugins/commands/enable_command.ex:121: anonymous fn/6 in RabbitMQ.CLI.Plugins.Commands.EnableCommand.do_run/2
    (elixir 1.10.4) lib/stream.ex:1325: anonymous fn/2 in Stream.iterate/2
    (elixir 1.10.4) lib/stream.ex:1538: Stream.do_unfold/4
    (elixir 1.10.4) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    (elixir 1.10.4) lib/stream.ex:956: Stream.do_enum_transform/7
    (elixir 1.10.4) lib/stream.ex:1609: Enumerable.Stream.do_each/4
    

    解决方法:
    求助老师之后,说是Erlang版本问题,我在阿里云上又买了一台服务器测试,没有问题;

  10. Rabbitmq有一个默认的帐号和密码,都是guest,但是只能通过本机访问,如果需要在其他电脑登录,需要创建一个新的用户,为其分配权限:

    [root@localhost ~]# rabbitmqctl add_user admin admin							## 新建用户名和密码
    Adding user "admin" ...
    Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
    [root@localhost ~]# rabbitmqctl set_user_tags admin administrator			##设置用户权限
    Setting tags for user "admin" to [administrator] ...
    [root@localhost ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"			##设置权限
    Setting permissions for user "admin" in vhost "/" ...
    [root@localhost ~]# 
    

    访问效果:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值