-
名词解释:
高可用:在时间上和速度上满足要求,例如在大并发条件下,能够不阻塞的执行程序,总之一句话:快就完了,对不对无所谓;一般从架构角度进行设计;
高可靠:不能出错,例如银行扣费系统,需要无故障地持续运行,从来不崩溃,不出错,一定要稳定,不需要快;一般从代码逻辑角度进行设计;
-
安装环境:CentOS7
-
开始安装;
-
下载软件,需要依赖Erlang环境,需要socat,将两个软件拷贝到云主机上;
erlang-23.3.3-1.el7.x86_64.rpm
rabbitmq-server-3.8.15-1.el7.noarch.rpmsocat支持多协议,用于协议处理,端口转发,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
-
将安装包拷贝到/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%]
-
常用运行命令:
[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
-
打开管理终端,使用到到端口号: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
-
启动管理终端;
-
遇到的问题,解决方法:
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版本问题,我在阿里云上又买了一台服务器测试,没有问题; -
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 ~]#
访问效果:
Centos7安装RabbitMQ学习总结
最新推荐文章于 2023-06-14 17:36:08 发布