安装:
在线安装依赖环境:
直接运行:
yum install gcc
yum install socat
yum install openssl
yum install openssl-devel
在虚拟机新建文件夹,将压缩包传入文件夹,然后进入文件夹
解压:
rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm
上传压缩包,将压缩包放在上一步同一个文件夹;
rpm -ivh rabbitmq-server-3.7.17-1.el7.noarch.rpm
# 开启管理界面
rabbitmq-plugins enable rabbitmq_management# 配置远程可使用guest登录mq
cd /usr/share/doc/rabbitmq-server-3.7.17cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
# 修改配置文件
vi /etc/rabbitmq/rabbitmq.config
修改文件:
centos6用这个命令:
/sbin/service rabbitmq-server restartcentos7用这个命令:
systemctl start rabbitmq-server
RabbitMQ在安装好后,可以访问
http://ip地址:15672
;其自带了guest/guest的用户名和密码;如果需要创建自定义用户;那么也可以登录管理界面后,如下操作:
登陆成功接界面:
P: 一个生产者
C: 一个消费者
Q: 队列
创建一个maven工程:
添加依赖:
com.rabbitmq amqp-client 5.13.1 compile
- public class Test01 {
- public static void main(String[] args) throws Exception{
- ConnectionFactory factory = new ConnectionFactory();
- //设置rabbitMQ服务器的地址 默认localhost
- factory.setHost("192.168.92.241");
- //设置rabbitMQ的端口号 默认5672
- factory.setPort(5672);
- //设置账号和密码 默认guest
- factory.setUsername("guest");
- factory.setPassword("guest");
- //设置虚拟主机名 默认为 /
- factory.setVirtualHost("/");
- //获取连接通道
- Connection connection = factory.newConnection();
- //获取channel信道
- Channel channel = connection.createChannel();
- //创建队列
- /**
- * 如果该队列名不存在则自动创建,存在则不创建
- * String queue,队列名
- * boolean durable,是否持久化
- * boolean exclusive,(独占)声明队列同一时间只能保
- 证一个连接,且该队列只有被这一个连接使用。
- * boolean autoDelete,是否自动删除
- * Map
arguments: 其他参数 - * */
- channel.queueDeclare("simple_queue",true,false,false, null);
- //发送消息到队列
- /**
- * String exchange,把消息发给哪个交换机--简单模式没
- 有交换机""
- * String routingKey,消息绑定的路由key 如果为简单模
- 式 默认写为队列名称
- * BasicProperties props, 消息的属性
- * byte[] body: 消息的内容
- */
- String msg="hello world";
- channel.basicPublish("","simple_queue",null,msg.getBytes());
- connection.close();
- }
-
- }
测试:
启动后进入RabbitMQ的ui界面,
- public class Testxfz1 {
- public static void main(String[] args) throws Exception{
- ConnectionFactory factory = new ConnectionFactory();
- //设置rabbitMQ服务器的地址 默认localhost
- factory.setHost("192.168.92.241");
- //设置rabbitMQ的端口号 默认5672
- factory.setPort(5672);
- //设置账号和密码 默认guest
- factory.setUsername("guest");
- factory.setPassword("guest");
- //设置虚拟主机名 默认为 /
- factory.setVirtualHost("/");
- //获取连接通道
- Connection connection = factory.newConnection();
- //获取channel信道
- Channel channel = connection.createChannel();
- //监听队列
- /**
- * String queue,监听的队列名称
- * autoAck:是否自动确认消息
- * Consumer callback: 监听到消息后触发的回调函数
- */
- DefaultConsumer consumer = new DefaultConsumer(channel){
- @Override
- /*一旦有消息就会触发该方法*/
- //body:表示消息的内容
- public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
- System.out.println("接受的消息内容:"+new String(body));
-
- }
- };
- channel.basicConsume("simple_queue",true,consumer);
- }
- }
注意: 不要关闭消费者连接对象,因为他要实时监听消息,生产者每发送消息,他都能及时获取。