一、安装、常见操作
1、安装环境
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
2、安装erlang
wget http://erlang.org/download/otp_src_21.0.tar.gz
#解压
tar xvf otp_src_21.0.tar.gz
cd otp_src_21.0
#配置 '--prefix'指定的安装目录
./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
#安装
make && make install
#配置erlang环境变量
#erlang
export ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
3、安装RabbitMQ
1)下载 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.7/rabbitmq-server-generic-unix-3.7.7.tar.xz
2)安装
解压rabbitmq,官方给的包是xz压缩包,所以需要使用xz命令
xz -d rabbitmq-server-generic-unix-3.7.7.tar.xz
#xz解压后得到.tar包,再用tar命令解压
tar -xvf rabbitmq-server-generic-unix-3.7.7.tar
#移动目录 看个人喜好
cp -rf ./rabbitmq_server-3.7.7 /usr/local/
cd /usr/local/
#修改文件夹名
mv rabbitmq_server-3.7.7 rabbitmq-3.7.7
#开启管理页面插件
cd ./rabbitmq-3.7.7/sbin/
./rabbitmq-plugins enable rabbitmq_management
#添加环境变量
#rabbitmq
export RABBITMQ_HOME=/usr/local/rabbitmq_server-3.7.7
export PATH=$PATH:$RABBITMQ_HOME/sbin
3)启动(选择后台启动)
#启动命令,该命令ctrl+c后会关闭服务
./rabbitmq-server
#在后台启动Rabbit
./rabbitmq-server -detached
#关闭服务
./rabbitmqctl stop
#关闭服务(kill) 找到rabbitmq服务的pid [不推荐]
ps -ef|grep rabbitmq
kill -9 ****
4)常见操作
客户端默认端口5672
管理网站http://192.168.248.11:15672 (改成你的IP)
a)常见操作
https://blog.csdn.net/kk185800961/article/details/55214474
# 以下创建名为vh的vhost,创建了test用户,密码是test,角色(tag)是management,vh被赋予给test帐号,拥有.*权限
rabbitmqctl add_vhost vh
rabbitmqctl add_user test test
rabbitmqctl set_user_tags test management
rabbitmqctl set_permissions -p vh test ".*" ".*" ".*"
# 常见tag(角色)
management :访问 management plugin;
policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;
monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;
administrator :一切权限;
#日志文件
/usr/local/rabbitmq_server-3.7.7/var/log/rabbitmq/rabbit@mini1.log
远程操作的时候,报如下错误:
解决办法是:
rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。我的是3.7
如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(找到/rabbitmq_server-3.7.7/ebin下面的rabbit.app文件)中设置
loopback_users为[]。
找到/rabbitmq_server-3.7.7/ebin下面的rabbit.app文件文件完整内容如下(注意后面的半角句号):
找到:loopback_users里的<<”guest”>>删除。
[{rabbit, [{loopback_users, []}]}].
然后重启 (如果有服务的话)
systemctl restart rabbitmq-server.service
搞定
登录进去之后:
二、Java端操作
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.4.1</version>
</dependency>
package com.wyf.test.rabbitmqtest;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Send {
/*
* 定义一个队列“hello”
*/
private final static String QUEUE_NAME = "hello";
private final static String BROKER_IP = "192.168.248.11";
private final static int BROKER_PORT = 5672;// rabbitmq 默认端口5672
private final static String BROKER_USERNAME = "rabbitadmin";
private final static String BROKER_PASSWORD = "123456";
private final static String VHOST = "test1";
public static void main(String[] argv) throws IOException, TimeoutException{
//创建一个连接
ConnectionFactory factory = new ConnectionFactory();
//连接本地,如果需要指定到服务,需在这里指定IP
factory.setHost(BROKER_IP);
factory.setUsername(BROKER_USERNAME);
factory.setPassword(BROKER_PASSWORD);
factory.setPort(BROKER_PORT);
factory.setVirtualHost(VHOST);
Connection connection = factory.newConnection();
//创建一个通道
Channel channel = connection.createChannel();
//申明通道发送消息的队列,把消息发送至消息队列‘hello’
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
//Declaring a queue is idempotent - 如果队列不存在则会创建一个队列
//消息内容为byte array, so可以自己随意编码
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
//消息发送完成后,关闭通道和连接
channel.close();
connection.close();
}
}
另外一个可以正确安装的地址:
https://blog.csdn.net/lzxlfly/article/details/79406929