-
官网地址
rabbitmq下载官网 -
安装
rpm -ivh erlang-21.3-1.el7.x86_64.rpm # 安装erlang
yum install socat -y # 安装依赖
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm # 安装mq -
常用命令
添加开机启动 RabbitMQ 服务
chkconfig rabbitmq-server on/sbin/service rabbitmq-server start # 启动
/sbin/service rabbitmq-server status # 查看状态
/sbin/service rabbitmq-server status # 停止服务
rabbitmq-plugins enable rabbitmq_management # 开启 web 管理插件用默认账号密码(guest)访问地址:http:/ channel.queueDeclare(QUEUE_NAME,false,false,false,null); //发送消息 String message = "hello world"; channel.basicPublish("",QUEUE_NAME,null,message.getBytes()); } } ps:记得开放端口 5672
- 消费者
public class Consumer { public static final String QUEUE_NAME="hello"; //接收消息 public static void main(String[] args) throws IOException, TimeoutException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("192.168.1.1"); //用户名 factory.setUsername("admin"); //密码 factory.setPassword("admin"); factory.setPort(5672); //factory.setVirtualHost("hbsi"); // 虚拟机 //连接 Connection connection = factory.newConnection(); //通道 Channel channel = connection.createChannel(); com.rabbitmq.client.Consumer consumer = new DefaultConsumer(channel){ @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { System.out.println("consumerTag:"+consumerTag); System.out.println("Exchange:"+envelope.getExchange()); System.out.println("RoutingKey:"+envelope.getRoutingKey()); System.out.println("DeliveryTag:"+envelope.getDeliveryTag()); System.out.println("properties:"+properties); System.out.println("body:"+new String(body)); } }; channel.basicConsume(QUEUE_NAME,true,consumer); } }
- P:生产者,不再发送到队列中,而是发给 X 交换机
- C:消费者,消息的接收者,会一直等待消息到来
- Queue:消息队列,接收消息、缓存消息
- Exchange:交换机(X)一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个队列、递交给所有队列,或是将消息丢弃。Exchange三种类型:
- Fanout:广 播,将消息交给所有绑定到交换机的队列
- Direct:定向,把消息交给符合指定 routing key 的队列
- Topic:通配符,把消息交给符合 routing pattern(路由模式)的队列
- Exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与 Exchange 绑定,或者没有符合路由规则的队列,那么消息会丢失
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)