交换机:
生产者将消息发送到交换机上,根据交换机不同的种类,将消息体按照不同的规则转发给不同的消费者。

fanout

此模式是将生产者生产的消息,通过交换机绑定的所有队列,发送到所有绑定到此交换机上的队列。

product.go

 err = c.ExchangeDeclare("j" , amqp.ExchangeFanout , false, false , false , false , nil)fmt.Println(err)qu , err := c.QueueDeclare("hello-test" , false , false , false , false , nil)fmt.Println(err)err = c.QueueBind(qu.Name , "" , "j" , false ,nil)fmt.Println(err)msg , err := c.Consume(qu.Name ,"" , false , false , false , false , nil)fmt.Println(err)for d := range msg {fmt.Println(string(d.Body))d.Ack(false)}

fanout模式是将接收到的消息转发给绑定此交换机的所有队列。

direct

direct模式将生产者的消息通过key转发给不同的队列。

product.go

 err = c.ExchangeDeclare("jht" , amqp.ExchangeDirect, false , false ,false , false , nil)fmt.Print(err)_ = c.Publish("jht" , "ok", false , false , amqp.Publishing{Body: []byte("test hello"),})

consumer.go

 err = c.ExchangeDeclare("jht" , amqp.ExchangeDirect, false, false , false , false , nil)fmt.Println(err)qu , err := c.QueueDeclare("" , false , false , false , false , nil)fmt.Println(err)err = c.QueueBind(qu.Name , "ok" , "jht" , false ,nil)fmt.Println(err)msg , err := c.Consume(qu.Name ,"" , false , false , false , false , nil)fmt.Println(err)for d := range msg {fmt.Println(string(d.Body))d.Ack(false)}

rabbitmq——交换机fanout和direct相关推荐

  1. RabbitMQ交换机(Fanout、Direct、Topic)三种模式详解

    一. 交换机 1.1 Exchanges 1.1.1 Exchanges概念 ​ RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列.实际上,通常生产 者甚至都不知道这 ...

  2. 认识RabbitMQ交换机模型

    认识RabbitMQ交换机模型 原文:认识RabbitMQ交换机模型 前言 RabbitMQ是消息队列中间件(Message Queue Middleware)中一种,工作虽然有用到,但是却没有形成很 ...

  3. SpringAMQP-Basic Queue、Work Queue、Fanout、Direct、Topic

    同步通讯.异步通讯.RabbitMQ的基本了解 https://blog.csdn.net/weixin_51351637/article/details/129501470?spm=1001.201 ...

  4. Rabbitmq交换机详解

    rabbitmq交换机 1.作用: 接受生产者的消息,然后根据路由键routingKey把消息投递到跟交换机绑定的对应的队列上 2.属性 Name: 交换机的名称 Type: 交换机的类型,direc ...

  5. RabbitMQ交换机类型

    RabbitMQ交换机类型 一.Direct Exchange(直连交换机) 二. Fanout Exchange(扇型交换机) 三.Topic Exchange(主题交换机) 四.Headers E ...

  6. RabbitMQ——交换机

    1. 交换机 exchange 不指定交换机直接发送到队列时,多个消费者之间存在的是竞争关系,一个消息只能被一个消费者接收,其他的消费者不能够再次接收:交换机可以绑定多个不同的队列,但是其Routin ...

  7. RabbitMQ(03)——RabbitMQ的Fanout消息模型

    RabbitMQ--RabbitMQ的Fanout消息模型 Fanout消息模型结构 P:生产者,向Exchange发送消息 X: Exchange(交换机),接收生产者的消息 C:消费者,领取消息并 ...

  8. RabbitMQ中Fanout交换机的使用

    交换机的基本原理 案例 由于Fanout类型的交换机原理类似于广播的模式,所以需要先启动消息的消费者以避免消息的丢失. 接受方: 消费者1: public class Reseive {public ...

  9. RabbitMQ交换机简介

    介绍 RabbitMQ消息传递模型的核心思想是:生产者生产的消息从不会直接发送到队列.实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中. 相反,生产者只能将消息发送到交换机(exchang ...

最新文章

  1. JavaScript内置函数及API
  2. 一图看尽全生态, 2018区块链产业云图重磅发布
  3. 40岁了,还要跟小年青一样埋头敲代码吗?
  4. SIG Cloud Provider Alibaba 网研会第 2 期顺利召开 | 云原生生态周报 Vol. 46
  5. MOSS中对列表的一些操作(创建,查询等)
  6. Masuit.Tools,一个免费的轮子
  7. 【CF487E】Tourists【圆方树】【树链剖分】【multiset】
  8. 逆向知识第七讲,三目运算符在汇编中的表现形式,以及编译器优化方式
  9. 动易html在线编辑器,动易系统解决IE8网站后台编辑器无效问题
  10. 【最详细】Wireshark使用教程
  11. 《大型网站技术架构:核心原理与案例分析》读书笔记
  12. 初出茅庐的小李第84篇博客之驱动WS2812B灯带(一)
  13. 使用IPv6下载google drive 大文件
  14. python定位地理位置_python 实现ip定位地址
  15. kali 控制安卓手机拍照,查看定位,获取通信录,以及其他
  16. C语言典型例题四——斐波那契数列
  17. Android 多渠道打包与开发
  18. js对象、数字深拷贝方式(转)
  19. DB_RECOVERY_FILE_DEST,LOG_ARCHIVE_DEST,LOG_ARCHIVE_DEST_N
  20. uniapp vue 身份证号校验

热门文章

  1. 法国西南华人华侨商会:进军区块链行业,促进技术创新项目落地
  2. 室内制图如何让您的办公室受益
  3. kruskalCase克鲁斯卡尔算法
  4. 线程1(Thread)
  5. 获奖公布|@程序员,你读过的书,藏着自己的命运
  6. vue页面的定时刷新
  7. 聚观早报 | 货拉拉入局跑腿业务;苹果任命首位首席人力资源官
  8. 虚幻引擎图文笔记:使用布料模拟(Cloth Simulation)系统制作一面可以随风飘动的旗帜(更新)
  9. 教你怎么一下哄好赌气的女朋友​
  10. 【基于Python+tkinter的音乐播放器开发-哔哩哔哩】 https://b23.tv/eG2TwOL