(java)简单实现原生RabbitMQ中的广播订阅(fanout)模式
来源:互联网 发布:黑苹果mac server 硬件 编辑:程序博客网 时间:2024/06/14 19:41
fanout 发送端
import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;public class MyFanoutSender { private static final String MESSAGE = "my name is"; public static void main(String[] args){ Connection conn = null; Channel channel = null; try { //初始化连接,主机,端口,用户名,密码可以自己定义ConnectionFactory factory = new ConnectionFactory();factory.setHost(HOST_PARAMETER.LOCAL_HOST);factory.setPort(HOST_PARAMETER.LOCAL_PORT);factory.setUsername(HOST_PARAMETER.LOCAL_USER_NAME);factory.setPassword(HOST_PARAMETER.LOCAL_PASSWORD);//创建连接conn = factory.newConnection();//创建通道channel = conn.createChannel();//定义为fanout类型的交换机channel.exchangeDeclare(HOST_PARAMETER.EXCHANGE_NAME, "fanout");//发送,指定routingkey为""channel.basicPublish(HOST_PARAMETER.EXCHANGE_NAME, "", null, MESSAGE.getBytes());System.out.println("I send a fanout massage!");} catch (Exception e) {e.printStackTrace();} finally{try {if(channel != null){channel.close();}if(conn != null){conn.close();}} catch (Exception e) {e.printStackTrace();}} }}
fanout订阅者(接收端),可以自己多定义几个,才能看出效果
import java.io.IOException;import com.rabbitmq.client.AMQP.BasicProperties;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.client.Consumer;import com.rabbitmq.client.DefaultConsumer;import com.rabbitmq.client.Envelope;public class MyFirstFanoutReceiver { public static void main(String[] args){ Connection conn = null; Channel channel = null; try { //初始化连接ConnectionFactory factory = new ConnectionFactory();factory.setHost(HOST_PARAMETER.LOCAL_HOST);factory.setPort(HOST_PARAMETER.LOCAL_PORT);factory.setUsername(HOST_PARAMETER.LOCAL_USER_NAME);factory.setPassword(HOST_PARAMETER.LOCAL_PASSWORD);//创建连接conn = factory.newConnection();//创建通道channel = conn.createChannel();//声明交换机类型channel.exchangeDeclare(HOST_PARAMETER.EXCHANGE_NAME, "fanout");//声明默认的队列String queue = channel.queueDeclare().getQueue();//将队列与交换机绑定,最后一个参数为routingKey,与发送者指定的一样""channel.queueBind(queue, HOST_PARAMETER.EXCHANGE_NAME, "");//消费者 Consumer consumer = new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body)throws IOException {System.out.println(new String(body,"utf-8")+" Tom");} }; channel.basicConsume(queue, true, consumer); System.out.println("i am the first fanout receiver!"); }catch (Exception e) {e.printStackTrace(); } }}
阅读全文
0 0
- (java)简单实现原生RabbitMQ中的广播订阅(fanout)模式
- RabbitMQ的Exchange 模式之Fanout(广播模式)
- spring boot整合RabbitMQ(Fanout模式)
- RabbitMQ学习之三: 发布/订阅(广播方式fanout)
- spring boot 整合rabbitmq 的 Fanout Exchange广播模式
- RabbitMQ Exchange 模式 - fanout
- rabbitmq 交换模式-Fanout
- rabbitmq 交换模式-Fanout
- fanout广播模式
- java设计模式-观察者模式(广播机制,消息订阅)
- RabbitMQ Exchange模式之Fanout
- (java)一个简单的原生的RabbitMQ的例子。
- (七)RabbitMQ消息队列-通过fanout模式将消息推送到多个Queue中
- RabbitMQ学习之发布/订阅(java)
- RabbitMQ Exchange Type(Direct/Fanout/Topic)理解测试
- Spring Boot RabbitMQ 入门(三)之 Fanout交换器
- RabbitMQ (三) 发布/订阅
- RabbitMQ (三) 发布/订阅
- 用Java语言产生1~30之间的7个随机整数,且不能重复,并与用户输入的7个数作比较,设置相应的奖项
- ASM Algorithm (Active Shape Model) and its opencv implement
- 谁是区块链技术的新王者?
- java随机生成六位数
- poi jar包作用及文字解析
- (java)简单实现原生RabbitMQ中的广播订阅(fanout)模式
- EEPROM和flash的区别
- RSA实例 java 安全
- 统计文件中单词个数--c++实现
- bzoj2824: [AHOI2012]铁盘整理
- HDU
- Linux对EXT3分区大小进行无损更改的步骤 (2)
- java 最基本的问题
- intelliJ IDEA之jdk、maven、UTF-8、Tomcat设置