首页 > 编程知识 正文

docker安装kafka(rabbitmq怎么使用)

时间:2023-05-04 12:09:59 阅读:103003 作者:91

拉比Q:3.8二郎:22.2

RabbitMQ以前用于开发,但从未正确安装。在本地电脑上,我们使用的是windows版的RabbitMQ安装包,而在生产环境中,运维已经帮我们设置好了,不用担心什么。

一切都处于平静状态。只有当我知道我想了解更多关于RabbitMQ的知识时,我才发现我还没有在Linux上安装它。那么,我该如何学习hello world呢?我看不到世界的美丽。于是,我开始了一个自虐的过程。

我知道安装RabbitMQ的前提是要安装erlang,哈哈,你骗不了我,所以我赶紧从官网下载了22.2版本的erlang,基本上是最新版本。按照百度给出的安装步骤,安装成功。在命令行中输入erl,将显示版本号和其他信息,并键入halt()。退出erlang的控制台。到目前为止,一切都很美好。整个步骤可以简述如下:

在erlang官网下载最新的tar.gz(22.2),解压后进入目录:/configure-prefix=/usr/local/Erlang

制作制作安装

编辑/etc/profile,并添加:

ERLANG_HOME=/usr/local/erlang

export=$ path : $ Erlang _ home/专用灯泡

导出ERLANG_HOME

然后执行source /etc/profile。

验证:任何目录erl,输入

暂停()。出口

接下来,我们来看看版本对应的问题。最新的RabbitMQ是3.8,与erlang的版本相匹配。这可以从RabbitMQ的官方网站上查看。为CentOS下载并安装了一个RabbitMQ rpm软件包,因此出现了一个错误:

错误: package : rabbit MQ-server-3 . 8 . 3-1 . El 7 . no arch(/rabbit MQ-server-3 . 8 . 3-1 . El 7 . no arch)

要求: erlang=21.3

可用: Erlang-R16B-03 . 18 . El 7 . x86 _ 64(epel)

erlang=R16B-03.18.el7

你可以试着用-skip-break来解决这个问题

**发现1个预先存在的rpmdb问题,“yum check”输出如下3360

red hat-LSB-core-4.1-27 . El 7 . centos . 1 . x86 _ 64缺少/usr/s专用灯泡/sendmail的要求

一开始怀疑是没有安装红帽-LSB-core-4.1-27 . El 7 . centos . 1 . x86 _ 64,但发现是最新版本。选择-跳过-中断以rpm安装,但仍会报告错误。于是我开始了四个小时的百度搜索之旅,逐渐发现命令yum及其背后的逻辑有点复杂,类似于maven,管理所需的依赖关系。

但是我为什么要安装最新版本的依赖呢?它还是提醒我二郎版太低了。根据我的百度搜索结果,大概是说有一个社区维护的仓库,但是里面的二郎太老了。yum在安装RabbitMQ的时候,分析需要erlang依赖,就去仓库找可用的erlang列表,发现都是低版本,就直接退出抛出了一个错误。改成阿里巴巴云的镜像仓库会不会很好?我发现在配置中,有几个来源是阿里巴巴云的。说白了,阿里巴巴云只是定期同步国外仓库,不会聪明到加入新版本。然后去RabbitMQ官网查看Package Cloud或者Bintray的安装方法。我从头到尾看了一遍。原谅我英语不好。我听懂了话里的意思,内部逻辑一片混乱。没有列表之类的,分不清哪个对哪个有用,哪个不用考虑。简而言之,这条路经过简单的尝试是行不通的。

在接下来的百度中,我发现我可以用rpm -ivh - nodeps来安装它,这意味着忽略依赖,依靠自己。我觉得官网要靠三样东西,我都装了。嗯哼,安装没问题,但是启动RabbitMQ又报错了:

重定向到/聚焦灯泡/系统CTL start rabbit MQ-server . service

rabbitmq-server.service的作业失败,因为控制进程退出,出现错误代码。有关详细信息,请参见“system CTL status rabbit MQ-server . service”和“journalctl -xe”。

/usr/lib/systemd/system/rabbit MQ-server . service;d

isabled; vendor preset: disabled

结合百度的说法,可以自己设置yum的源,添加.repo之类的东西,写进去一些配置,反正实验了几次,不对头。

我陷入了深深的怀疑之中,不就是一个mq吗,这种东西应该很容易安装,为什么会出现感觉好难的样子。那之前运维的人为什么没有觉得这个难装呢?我可以怀疑那时候RabbitMQ版本还不是太高,erlang勉强还能够匹配当前的版本,比如3.6之类的。

现在,可是另一番景象了。我不相信官网只提供rpm格式,不提供tar格式。于是继续在官网中去寻找,结果,真的有tar格式的。

这下子我明白我的错误了,以为首页所展示的安装和下载,就是最适合的安装和下载。这种想法是不对的。下载网址:https://www.rabbitmq.com/install-generic-unix.html

接下来顺利多了解压,启动。我先前台启动,关闭试着后台启动,但爆了一个错误:

init terminating in do_boot

按照咱们伟大的百度的说法,应该是要删除RabbitMQ_HOME/var目录子啊的所有文件,我照着做一遍,真的是。感谢百度。

现在能够顺利启动,但我想通过端口15672访问控制台怎么办呢?先把阿里云上的端口15672 5672端口开放,linux的防火墙也开放这两个端口。

然后还需要启动管理插件:./s专注的灯泡/rabbitmq-plugins enable rabbitmq_management意外哟,出现了错误:

corrupt_or_missing_cluster_files

我没有弄集群,这个不科学。本着不行就重启的思路,我关闭了mq,然后开启插件,然后启动,一切ok。看来这个插件启用不能再开了mq之后啊。

现在访问管理页面:http://{node-hostname}:15672/ 出现了页面:

我发现RabbitMQ提供了一个guest/guest的账户,但是呢,它是不允许远程访问的。那么,只好自己配置用户了。

列出所有用户: ./rabbitmqctl list_users 添加用户: ./rabbitmqctl add_user 用户名 密码 删除用户: ./rabbitmqctl delete_user 用户名 授予用户管理员角色:./rabbitmqctl set_user_tags 用户名 administrator 给用户分配 配置 读 写 等权利:./rabbitmqctl set_permissions -p / 用户名 '.*' '.*' '.*'

经过了这几步,再次登录,就进入了管理页面。

感慨:所谓工作经验,不是你用到了什么高大上的技术,而是,你走过了很多坑,然后,就可以在接下来的时间少走很多弯路。这个mq安装最多半小时,愣是被我弄成了一天,这个效率。。。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。