1.下载安装包
假如下载到/opt目录中
所有版本的下载目录:http://www.rabbitmq.com/releases/rabbitmq-server/
# wget http:
//www.rabbitmq.com/releases/rabbitmq-server/v3.6.2/rabbitmq-server-generic-unix-3.6.2.tar.xz
|
2.解压安装包
# cd /opt
# xz -d rabbitmq-server-generic-unix-
3.6
.
2
.tar.xz
# tar xvf rabbitmq-server-generic-unix-
3.6
.
2
.tar
|
3.启动服务
# cd /opt/rabbitmq_server-
3.6
.
2
/sbin
# ./rabbitmq-server -detached
|
4.增加账号权限
rabbitmq远程连接默认是使用guest用户,guest密码来连接的,但是只能通过localhost来连接,那对于客户端和rabbitmq服务器不是在同一台主机上的,连接就会报下面错误:
PLAIN login refused: user
'guest'
can only connect via localhost
|
此时需要创建一个新的账号,并设置权限:
# cd /opt/rabbitmq_server-
3.6
.
2
/sbin
# ./rabbitmqctl add_user root
123456
# ./rabbitmqctl set_user_tags root administrator
# ./rabbitmqctl set_permissions -p / root
".*"
".*"
".*"
|
5.启用Management Plugin
这个插件实际上已经随rabbitmq一道安装了,要做的是,enable它:
# ./rabbitmq-plugins enable rabbitmq_management
|
通过 http://rabbitmq-server-ip:15672,输入设置的用户名(root)和密码(123456)就能登录管理界面了,如图:
6.Demo(Java)
a. 消息发送者(Sender.java)
package
com.lm.rabbitmq;
import
com.rabbitmq.client.Channel;
import
com.rabbitmq.client.Connection;
import
com.rabbitmq.client.ConnectionFactory;
public
class
Send {
private
final
static
String QUEUE_NAME =
"hello"
;
public
static
void
main(String[] argv)
throws
Exception {
ConnectionFactory factory =
new
ConnectionFactory();
factory.setHost(
"192.168.1.8"
);
factory.setPort(
5672
);
factory.setUsername(
"root"
);
factory.setPassword(
"123456"
);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME,
false
,
false
,
false
,
null
);
String message =
"Hello World!"
;
channel.basicPublish(
""
, QUEUE_NAME,
null
, message.getBytes(
"UTF-8"
));
System.out.println(
" [x] Sent '"
+ message +
"'"
);
channel.close();
connection.close();
}
}
|
b.消息接收者(Receiver.java)
package
com.yhiker.rabbitmq;
import
com.rabbitmq.client.*;
import
java.io.IOException;
public
class
Receiver {
private
final
static
String QUEUE_NAME =
"hello"
;
public
static
void
main(String[] argv)
throws
Exception {
ConnectionFactory factory =
new
ConnectionFactory();
factory.setHost(
"192.168.1.8"
);
factory.setUsername(
"root"
);
factory.setPassword(
"123456"
);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME,
false
,
false
,
false
,
null
);
System.out.println(
" [*] Waiting for messages. To exit press CTRL+C"
);
Consumer consumer =
new
DefaultConsumer(channel) {
@Override
public
void
handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
byte
[] body)
throws
IOException {
String message =
new
String(body,
"UTF-8"
);
System.out.println(
" [x] Received '"
+ message +
"'"
);
}
};
channel.basicConsume(QUEUE_NAME,
true
, consumer);
}
}
|