Ⅰ、高层接口
- ConnectionFactory
- Connection
- Channel
- Consumor
Ⅱ、操作流程及API
【一】创建连接工厂ConnectionFactory
ConnectionFactory factory = new ConnectionFactory(); 我们可以为actory设置各种参数来进行连接初始化
factory.setUsername("guest");//设置服务器登录账号 factory.setPassword("guest");//设置服务器登录密码 factory.setHost("127.0.0.1");//设置服务器IP factory.setPort("15427");//设置服务器端口 factory.setVirtualHost("/");//设置虚拟主机【二】创建连接Connection
Connection connection = factory.newConnection();【三】创建信道Channel
Channel channel = connection.createChannel();知识点:
连接和信道的关系:连接是客户端与服务器开启的
TCP连接,由于TCP连接的开启和销毁都需要消耗大量的性能,所以我们在连接的基础上使用了信道的概念,对连接进行逻辑再分,每个连接都可以创建多个信道,这些信道共用一个连接。
信道就是RabbitMQ中最实用的组件了,几乎所有针对交换器、队列、生产者、消费者的操作全部都在这里面执行。
【四】创建交换器Exchange
Exchange.DeclareOK exchangeDeclare( String exchange, // 声明交换器名称 String type, // 声明交换器类型 boolean durable, // 声明是否持久化 boolean autoDelete, // 声明是否自动删除 boolean internal, // 声明是否内置 Map<String, Object> arguments // 创建交换器的其他参数 ) throws IOException Exchange.DeclareOK exchangeDeclare( String exchange, // 声明交换器名称 BuiltinExchangeType type, // 声明交换器类型 boolean durable, // 声明是否持久化 boolean autoDelete, // 声明是否自动删除 boolean internal, // 声明是否内置 Map<String, Object> arguments // 创建交换器的其他参数 ) throws IOException 创建交换器的方法有上面两种,这两种的区别仅在于声明交换器的类型type参数的类型不同,第一种常用。其实上面的方法每个都有很多个重载的方法,采用一些默认的参数。这里只列举参数最全的方法,来介绍其各个参数的意义。
知识点:交换器类型
RabbitMQ的交换器拥有四种类型,分别为fanout、direct、topic、headers。fanout类型的交换器会将消息路由到所有与其绑定的队列中,类似于广播;
