文件名称 | 版本号 | 联系人 | 备注 | |
---|---|---|---|---|
RabbitMQ文档_v0.0.1 | v0.0.1 | 飞豺 | 8416837 | mq技术 |
部署
# 安装ncurses
yum -y install ncurses-devel
# 安装epel-release
yum install epel-release -y
# 安装erlang otp_src_20.3.tar.gz
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install erlang # 版本:OTP 22 10.6.1
# 下载rabbitmq
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm # 安装 -y
安装完毕。
简单操作
# 启动和查看的命令
# 完成后启动服务:
service rabbitmq-server start
systemctl status rabbitmq-server.service # 查看启动日志
systemctl daemon-reload
# 可以查看服务状态:
service rabbitmq-server status
启动报错,因为erlang与rabbitMQ版本不一致。
版本对应表:
重新安装19.x
# 卸载erlang
yum list | grep erlang
yum -y remove erlang # 卸载
yum -y remove erlang-erts # 卸载
yum -y remove esl-erlang
wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_19.3.6.12-1~centos~7_amd64.rpm
rpm -Uvh esl-erlang_19.3.6.12-1~centos~7_amd64.rpm
erl -v # 版本号19
还是不行,换版本
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm
部署失败,重新部署【注意】
yum install epel-release -y
yum install erlang –y # 安装erlang
erl -v # 版本号: Erlang R14B04 (erts-5.8.5)
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.0.0/rabbitmq-server-3.0.0-1.noarch.rpm
yum -y install rabbitmq-server-3.0.0-1.noarch.rpm
chkconfig rabbitmq-server on # 开机启动
service rabbitmq-server start # 启动
终于启动成功
rabbitmq-plugins enable rabbitmq_management # web
插件已经改变:
http://192.168.4.65:15672/#/ # 账号密码 guest=guest
telnet 192.168.4.65 5672 # telnet接口 ping得通
增加stomp插件
rabbitmq-plugins enable rabbitmq_web_stomp
rabbitmq-plugins enable rabbitmq_web_stomp_examples
output log
The following plugins have been enabled:
rabbitmq_stomp
cowboy
sockjs
rabbitmq_web_stomp
rabbitmq_web_stomp_examples
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
应用
Demo
js
<!--消息-->
<script>
// 初始化 ws 对象
var ws;
const rabbitUrl = '://192.168.4.65:15674/'
if (location.search == '?ws') {
ws = new WebSocket('ws'+rabbitUrl+'ws');
} else {
ws = new SockJS('http'+rabbitUrl+'stomp');
}
// 获得Stomp client对象
var client = Stomp.over(ws);
// SockJS does not support heart-beat: disable heart-beats
client.heartbeat.outgoing = 0;
client.heartbeat.incoming = 0;
// 定义连接成功回调函数
var on_connect = function(x) {
//data.body是接收到的数据
client.subscribe("/queue/notice_invoke", function(data) {
var code = data.body;
if(code == 'auth') {
console.log("凭证验证成功!")
$('#auth_btn').addClass('active')
}else if (code == 'data') {
console.log("数据返回成功!")
// $('#auth_btn').removeClass('active')
$('#data_return').addClass('active')
}else if (code == 'toBlockChain') {
console.log("上链成功!以及完成调用!")
// $('#auth_btn').removeClass('active')
// $('#data_return').removeClass('active')
$('#toBlockChain').addClass('active')
$('#complete_invoke').addClass('active')
}
});
};
// 定义错误时回调函数
var on_error = function(errMsg) {
console.log(errMsg);
};
// 连接RabbitMQ
client.connect('guest', 'guest', on_connect, on_error, '/');
console.log(">>>连接上http://192.168.4.65:15674");
</script>
<script src="socket/sockjs.min.js"></script>
<script src="socket/stomp.js"></script>