队列式:一条消息只能被一个消费者消费(发布者、消费者)
主题式:一条消息可以被每一个消费者消费(发布者、订阅者)
1.队列式
一个消费者消费一个队列的消息
两个(或多个)消费者消费一个队列的消息(每条消息只能被消费一次)
1.1 消息发送
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
/**
* 生产者
*/
public class ComProducer {
public static String QUEUE_NAME = "aque";
public static String EXCHANGE_NAME = "aexc";
public static String ROUTING_KEY = "aaa";
public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory cf = new ConnectionFactory();
cf.setHost("127.0.0.1");
cf.setPort(5672);
cf.setUsername("guest");
cf.setPassword("guest");
//建立连接
Connection conn = cf.newConnection();
//创建消息通道
Channel channel = conn.createChannel();
//消息内容
String msg = " hello world! ";
//创建 队列
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
//创建路由
channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT);
//绑定路由与队列
channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY);
//发送消息
for (byte i = 0; i < 10; i+