疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【博客园总入口 】
架构师成长+面试必备之 高并发基础书籍 【Netty Zookeeper Redis 高并发实战 】
疯狂创客圈 高并发 环境 视频,陆续上线:
- Windows Redis 安装(带视频)
- Linux Redis 安装(带视频)
- Windows Zookeeper 安装(带视频)
- Linux Zookeeper 安装(带视频)
- RabbitMQ 离线安装(带视频)
- Nacos 安装(带视频)
小视频以及所需工具的百度网盘链接,请参见 疯狂创客圈 高并发社群 博客
依赖包安装
Rabbitmq安装主要依赖两个rpm依赖包:** erlang和socat**。
Rabbitmq依赖包的下载和安装
下载erlang, 在https://packagecloud.io/rabbitmq/erlang页面选择对应版本的erlang的rpm安装包(centos7需要19.3以上版本)。这里选择的是版本为22.0.6。
疯狂创客圈的网盘,有提供离线包
将下载后的erlang安装包上传到Linux的/usr/local目录,然后,使用rpm命令进行安装,命令如下:
sudo rpm -ivh /usr/local/erlang-22.0.6-1.el6.x86_64.rpm
socat 依赖包的下载和安装
什么是socat ?
socat 是Linux系统下的一强大易用的网络工具,名字来由是" Socket CAT",可以看作是netcat的加强版,socat的官方网站:http://www.dest-unreach.org/socat/。socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。 Socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
如何下载socat?
首先在http://www.rpmfind.net/linux/rpm2html/search.php?query=socat页面上,找到匹配目标Linux(这里是centos 7)系统的 rpm安装包, 这里选择的是socat-1.7.3.2-2.el7.x86_64.rpm 安装包。
疯狂创客圈的网盘,有提供离线包
安装socat离线包
将下载后的socat安装包上传到Linux的/usr/local目录,使用rpm命令进行安装,命令如下:
sudo rpm -ivh /usr/local/socat-1.7.3.2-2.el7.x86_64.rpm
RabbitMQ 单节点安装过程
第一步:下载需要安装的Rabbitmq版本
下载需要安装的Rabbitmq版本,这里为3.7.17,CentOS系统下对应版本的下载地址为:
疯狂创客圈的网盘,有提供离线包
第二步:rpm命令进行安装RabbitMQ
将安装包上传到Linux的/usr/local目录,然后,使用rpm命令进行安装,命令如下:
sudo rpm -ivh /usr/local/rabbitmq-server-3.7.17-1.el7.noarch.rpm
RabbitMQ的启动和配置
1 启动RabbitMQ
启动RabbitMQ消息服务器,可以执行下面的命令:
sudo service rabbitmq-server start
2 RabbitMQ管理账户的配置
执行命令 rabbitmqctl add_user admin admin,设置账户密码为admin admin
rabbitmqctl add_user admin admin
3 为管理员设置权限
执行命令 rabbitmqctl set_user_tags admin administrator,设置admin为管理员权限
rabbitmqctl set_user_tags admin administrator
4 打开rabbitmq web管理
执行命令 rabbitmq-plugins enable rabbitmq_management,打开rabbitmq web管理。
rabbitmq-plugins enable rabbitmq_management
5 登陆管理端,并打开访问权限
管理链接为:http://192.168.233.128:15672,登陆账户密码为设置的admin admin
查看用户权限,默认状态下权限是不允许访问(此时程序访问5672端口是连接被拒绝)。
点击用户名,进入用户页面,直接点击设置权限。此时刷新页面回到Users页面,权限变成可访问。
6 停止
[root@localhost work]# service rabbitmq-server stop
Redirecting to /bin/systemctl stop rabbitmq-server.service
[root@localhost work]# service rabbitmq-server status
Redirecting to /bin/systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Thu 2019-12-05 07:29:11 PST; 8s ago
Process: 27084 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=0/SUCCESS)
Process: 1526 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=0/SUCCESS)
Main PID: 1526 (code=exited, status=0/SUCCESS)
Status: "Initialized"
Nov 24 18:07:40 localhost.localdomain rabbitmq-server[1526]: Starting broker...
Nov 24 18:07:40 localhost.localdomain rabbitmq-server[1526]: systemd unit for activation check: "rabbitmq-server.service"
Nov 24 18:07:40 localhost.localdomain systemd[1]: Started RabbitMQ broker.
Nov 24 18:07:42 localhost.localdomain rabbitmq-server[1526]: completed with 4 plugins.
Dec 05 07:28:44 localhost.localdomain systemd[1]: Stopping RabbitMQ broker...
Dec 05 07:28:49 localhost.localdomain rabbitmqctl[27084]: Shutting down RabbitMQ node rabbit@localhost running at PID 1526
Dec 05 07:28:57 localhost.localdomain rabbitmqctl[27084]: Waiting for PID 1526 to terminate
Dec 05 07:28:57 localhost.localdomain rabbitmq-server[1526]: Gracefully halting Erlang VM
Dec 05 07:29:11 localhost.localdomain rabbitmqctl[27084]: RabbitMQ node rabbit@localhost running at PID 1526 successfully shut down
Dec 05 07:29:11 localhost.localdomain systemd[1]: Stopped RabbitMQ broker.
PS:常见问题
一. http://ip:15672不能访问,确认两点:1. 添加用户、给用户设置管理员权限、rabbitmq-plugins这三步是否执行成功。2. 使用firewall打开5672/15672端口。具体步骤如下:
sudo service firewalld start
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
sudo service firewalld start(如果系统不要求开启防火墙,可以在设置完以后再关闭它)
备注:即使防火墙处于关闭状态,也应该先打开端口再关闭,否则在有些机器上会仍然端口不通。
或者 关闭防火墙
首先使用systemctl status firewalld 命令,查看防火墙的状态,执行命令如下:
[root@localhost ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2019-07-25 19:15:01 CST; 18h ago
Docs: man:firewalld(1)
Main PID: 634 (firewalld)
Memory: 220.0K
CGroup: /system.slice/firewalld.service
└─634 /usr/bin/python -Es /usr/sbin/firewalld --nofork –nopid
结果中的Active: active (running) ,表示防火墙正在运行,实验和测试环境,建议进行关闭。关闭防火墙的命令如下:
service firewalld stop
首先查看防火墙状态:
service iptables status
永久性生效,重启后不会复原
chkconfig iptables off
chkconfig iptables on
关闭:
即时生效,重启后复原
具体,请关注 Java 高并发研习社群 【博客园 总入口 】
最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群 【博客园 总入口 】
疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战》
疯狂创客圈 Java 死磕系列
- Java (Netty) 聊天程序【 亿级流量】实战 开源项目实战
- Netty 源码、原理、JAVA NIO 原理
- Java 面试题 一网打尽
- 疯狂创客圈 【 博客园 总入口 】