0.背景工作
研究了下我司极光项目的消息发送机制
1.将消息保存到数据库表。
2.进行定时1分钟的多线程任务。
3.多线程内业务具体实现体:查询非异常状态消息数据,默认设置一个成功标识为true,循环发送消息,记录日志。若发送代码catch到异常,则失败次数+1,当失败次数超过最大次数时,记录异常状态。
1.虚拟机yum安装
su root 输入密码,切换到root账号
1.1卸载redhat自带yum
rpm -qa |grep yum //查看目前的yum命令
rpm -qa|grep yum|xargs rpm -e --nodeps # //不检查依赖,直接删除rpm包)
可再次运行查看命令,确定卸载成功
1.2 下载yum文件(http://mirrors.163.com 或者https://mirrors.aliyun.com)
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
1.3 安装yum---失败,跳过此步骤
rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm --nodeps --force
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm --nodeps --force
rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm --nodeps --force
执行后, yum-plugin进度为50%,去yum update,发现报错
It's possible that the above module doesn't match the current version of Python
原因可能是python版本未匹配上,解决方法:
which yum //找到yum文件路径,一般是/usr/bin/yum
vi /usr/bin/yum //查看上面找到的文件
将 #!/usr/bin/python
改为 #!/usr/bin/python2.6
ps:按下间键盘上的'i'键即可在鼠标位置添加内容。esc键可退出编辑
冒号:可进入命令。wq!保存并推出,q!退出。
参考文件:https://blog.csdn.net/yabingshi_tech/article/details/50439130
发现还是报错,不用yum安装了。
1.4 安装erlang
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
yum install erlang
rpm -qa | grep erlang
验证:erl -v
1+23.
输出有结果就是成功了。
1.5安装rabbitmq
wget -P /home/rabbitmq https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el6.noarch.rpm
rpm -i --nodeps rabbitmq-server-3.8.9-1.el6.noarch.rpm
chkconfig rabbitmq-server on //官网提供,启动守护线程,(百度说是设置开机自启动,无效
/sbin/service rabbitmq-server start //启动
/sbin/service rabbitmq-server stop //停止
至此安装成功
ps:错误集锦
1.rabbitmq-server-3.8.9-1.el7.noarch.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 6026dfca: NOKEY
只是警告不用管
2.若想卸载;
/sbin/service rabbitmq-server stop //保证服务已经停止
yum list | grep rabbitmq //查看目前是否安装 rabbitmq-server
yum -y remove rabbitmq-server.noarch //卸载
yum list | grep erlang //查看目前是否安装 erlang,以下均未作测试,不知是否有问题
yum -y remove erlang-* //卸载
yum remove erlang.x86_64
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
1.6配置rabbitmq
rabbitmq-plugins enable rabbitmq_management //开启管理UI(一次即可)
启动rabbitmq , 访问http://localhost:15672/,默认可以用guest guest登陆进去。
rabbitmqctl add_user admin 123456 //添加用户
rabbitmqctl set_user_tags admin administrator //给用户配置角色
rabbitmqctl set_permissions -p / \admin ".*" ".*" ".*" //赋予用户读写配置权限
过程中可关闭防火墙,本机电脑也可通过ip:15672访问
-------------停止防火墙#停止firewall #禁止firewall开机启动
systemctl stop firewalld.service
systemctl disable firewalld.service
参考资料:简书操作https://www.jianshu.com/p/e2fbbceecffb