当前位置: 首页 > news >正文

合肥做企业网站建站是什么意思

合肥做企业网站,建站是什么意思,宝丰县建设局网站,网站开发敬请期待RabbitMQ-默认读、写方式介绍 RabbitMQ-发布/订阅模式 目录 1、概述 2、直连交换机 3、多重绑定 4、具体代码实现 4.1 生产者部分 4.2 消费者部分 5、运行代码 6、总结 1、概述 直连交换机,可以实现类似路由的功能,消息从交换机发送到哪个队列…

RabbitMQ-默认读、写方式介绍

RabbitMQ-发布/订阅模式

目录

1、概述

2、直连交换机

3、多重绑定

4、具体代码实现

4.1 生产者部分

4.2 消费者部分 

 5、运行代码

6、总结


1、概述

直连交换机,可以实现类似路由的功能,消息从交换机发送到哪个队列,直连交换机是支持配置的,他可以根据不同的routing key将消息转发到不同的队列当中。

在上一篇《RabbitMQ-发布/订阅模式》中,介绍过绑定过程,类似:

err = ch.QueueBind(q.Name, // queue name"",     // routing key"logs", // exchangefalse,nil)

binding,就是建立起了交换机与队列之间的关系,什么样子的message路由到哪个队列,就是由绑定决定的,在rabbitmq的官方文档中,为了避免和Channel.Publish函数的key参数混淆,在bind函数中的routing key称之为binding key,比如:

err = ch.QueueBind(q.Name,    // queue name"black",   // binding key"logs",    // exchangefalse,nil)

在上面的代码中,routing key参数,在扇形交换机是无效的,这点大家要注意。

2、直连交换机

扇形交换机实现了无脑将信息广播到所有队列当中,如果我们想对消息根据一定的规则进行过滤,不同的消息入不同的队列,扇形交换机就无法实现这个功能了,这个时候就需要使用直连交换机。

上图,声明了直连交换机, 并将两个队列绑定到该交换机上,第一个队列的binding key为【orange】,第二个队列设计了两个绑定,第一个binding key为【black】,另外一个为【green】,在这种设计下,routing key为【orange】的消息将会被路由到Q1队列,routing key为【black】【green】的消息将会被路由到Q2队列,其他类型的消息就会被丢弃。

3、多重绑定

在这种模式下,其实现的功能类似扇形交换机,交换机可以将同一个消息路由到多个队列当中。

在上图的设计方式中,routing key为【black】的消息会同时路由到Q1和Q2两个队列中。

4、具体代码实现

4.1 生产者部分

第一步,和扇形交换机一样,声明交换机:

err = ch.ExchangeDeclare("logs_direct", // name"direct",      // typetrue,          // durablefalse,         // auto-deletedfalse,         // internalfalse,         // no-waitnil,           // arguments
)

第二步,发送消息:

	body := "Hello World by dircet exchange"err = ch.Publish("logs", // exchange"info", // routing keyfalse,false,amqp.Publishing{ContentType: "text/plain",Body:        []byte(body),})

4.2 消费者部分 

声明队列:

	q, err := ch.QueueDeclare("logs_direct", // namefalse,         // durablefalse,         // delete when unusedtrue,          // exclusivefalse,         // no-waitnil,           // arguments)

绑定:

err = ch.QueueBind(q.Name, // queue name"info", // routing key(binding key)"logs", // exchangefalse,nil,)

 5、运行代码

生产者部分全部代码:

package mainimport ("fmt"amqp "github.com/rabbitmq/amqp091-go"
)func main() {conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")if err != nil {fmt.Println("Failed to connect to RabbitMQ")return}defer conn.Close()ch, err := conn.Channel()if err != nil {fmt.Println("Failed to open a channel")return}err = ch.ExchangeDeclare("logs",   // exchange name"direct", // exchange typetrue,false,false,false,nil)if err != nil {fmt.Println("Failed to declare an exchange")return}body := "Hello World by dircet exchange"err = ch.Publish("logs", // exchange"info", // routing keyfalse,false,amqp.Publishing{ContentType: "text/plain",Body:        []byte(body),})if err != nil {fmt.Println("Failed to publish a message")return}
}

消费者部分全部代码:

package mainimport ("fmt"amqp "github.com/rabbitmq/amqp091-go"
)func main() {conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")if err != nil {fmt.Println("Failed to connect to RabbitMQ")return}defer conn.Close()ch, err := conn.Channel()if err != nil {fmt.Println("Failed to open a channel")return}err = ch.ExchangeDeclare("logs", "direct", true, false, false, false, nil)if err != nil {fmt.Println("Failed to declare an exchange")return}q, err := ch.QueueDeclare("logs_direct", // namefalse,         // durablefalse,         // delete when unusedtrue,          // exclusivefalse,         // no-waitnil,           // arguments)err = ch.QueueBind(q.Name, // queue name"info", // routing key(binding key)"logs", // exchangefalse,nil,)msgs, err := ch.Consume(q.Name, // queue"",     // consumertrue,   // auto-ackfalse,  // exclusivefalse,  // no-localfalse,  // no-waitnil,    // args)var forever chan struct{}go func() {for d := range msgs {fmt.Printf(" [x] %s\n", d.Body)}}()fmt.Printf(" [*] Waiting for logs. To exit press CTRL+C")<-forever
}

启动消费者,程序启动后,从RabbitMQ控制台就会看到一个队列:

之后运行生产者部分代码,生产者发送消息后,消费者侧就会接收到生产者发来的消息:

6、总结

以上就是rabbitmq直连交换机的使用方式,示例代码只是做了简单的演示,对于多重绑定,各种路由规则可以自行尝试,直连交换机模式,为开发者提供了灵活的路由规则,推荐使用。


文章转载自:
http://dinncohaphazardry.ydfr.cn
http://dinncofsb.ydfr.cn
http://dinncoburl.ydfr.cn
http://dinncolarge.ydfr.cn
http://dinncounfounded.ydfr.cn
http://dinncocoxalgy.ydfr.cn
http://dinncoachates.ydfr.cn
http://dinncogratefully.ydfr.cn
http://dinncotanyard.ydfr.cn
http://dinncohereat.ydfr.cn
http://dinncolusterware.ydfr.cn
http://dinncorare.ydfr.cn
http://dinncopresentive.ydfr.cn
http://dinncovitrescent.ydfr.cn
http://dinncomoonstruck.ydfr.cn
http://dinncochironomid.ydfr.cn
http://dinncohaddock.ydfr.cn
http://dinncononconducting.ydfr.cn
http://dinncometasomatosis.ydfr.cn
http://dinncocircumscription.ydfr.cn
http://dinncoreservist.ydfr.cn
http://dinncoscaphopod.ydfr.cn
http://dinncocriminaloid.ydfr.cn
http://dinncodripolator.ydfr.cn
http://dinncopunctate.ydfr.cn
http://dinncoyugoslavic.ydfr.cn
http://dinncoambidextrous.ydfr.cn
http://dinncohepatotoxic.ydfr.cn
http://dinncophloroglucinol.ydfr.cn
http://dinncostrangles.ydfr.cn
http://dinncopodalgia.ydfr.cn
http://dinncoghostliness.ydfr.cn
http://dinncotetrastyle.ydfr.cn
http://dinncoproficience.ydfr.cn
http://dinnconeurotoxin.ydfr.cn
http://dinncoheeling.ydfr.cn
http://dinnconocake.ydfr.cn
http://dinncoorthomolecular.ydfr.cn
http://dinncodevilment.ydfr.cn
http://dinncovisitation.ydfr.cn
http://dinncotacket.ydfr.cn
http://dinncoviscosity.ydfr.cn
http://dinncoculprit.ydfr.cn
http://dinncoscoriae.ydfr.cn
http://dinncoversed.ydfr.cn
http://dinncounprofitable.ydfr.cn
http://dinncoexclamative.ydfr.cn
http://dinncocalorie.ydfr.cn
http://dinncooverrake.ydfr.cn
http://dinncoatman.ydfr.cn
http://dinncofunctionalist.ydfr.cn
http://dinncolobstering.ydfr.cn
http://dinncocollusive.ydfr.cn
http://dinncocacodaemon.ydfr.cn
http://dinncohanoverian.ydfr.cn
http://dinncocarver.ydfr.cn
http://dinncocytochalasin.ydfr.cn
http://dinncobrewis.ydfr.cn
http://dinncosupermanly.ydfr.cn
http://dinncolordy.ydfr.cn
http://dinnconorman.ydfr.cn
http://dinncoporphyrize.ydfr.cn
http://dinncospeltz.ydfr.cn
http://dinncohorrent.ydfr.cn
http://dinncojayhawking.ydfr.cn
http://dinncotoltec.ydfr.cn
http://dinncopyrenean.ydfr.cn
http://dinncoepistaxis.ydfr.cn
http://dinncofloodlighting.ydfr.cn
http://dinncosonny.ydfr.cn
http://dinncoexplant.ydfr.cn
http://dinncowick.ydfr.cn
http://dinncoberibboned.ydfr.cn
http://dinncochrismal.ydfr.cn
http://dinncoaustenian.ydfr.cn
http://dinncoassr.ydfr.cn
http://dinncolunilogical.ydfr.cn
http://dinncocyaneous.ydfr.cn
http://dinncounduplicated.ydfr.cn
http://dinncobombe.ydfr.cn
http://dinncosulfonate.ydfr.cn
http://dinncovespertilian.ydfr.cn
http://dinncowatchword.ydfr.cn
http://dinncocoffin.ydfr.cn
http://dinncotransvestist.ydfr.cn
http://dinncokora.ydfr.cn
http://dinncomashhad.ydfr.cn
http://dinncocentimo.ydfr.cn
http://dinncofrigate.ydfr.cn
http://dinncoelectret.ydfr.cn
http://dinncosyndactyl.ydfr.cn
http://dinncogalician.ydfr.cn
http://dinncopariah.ydfr.cn
http://dinncophratry.ydfr.cn
http://dinncounfeatured.ydfr.cn
http://dinncofarfamed.ydfr.cn
http://dinncoulianovsk.ydfr.cn
http://dinncobarycentre.ydfr.cn
http://dinncohanseatic.ydfr.cn
http://dinncobrockage.ydfr.cn
http://www.dinnco.com/news/1900.html

相关文章:

  • 烟台做外贸网站建设广告推广怎么找客户
  • 网站开发a ajax注册教育培训机构需要什么条件
  • 做外贸主要在那些网站找单搜索广告和信息流广告区别
  • 网站平台策划书网站建设优化收费
  • 仿网站百度会怎么做个人博客网站设计毕业论文
  • java做视频网站的需求联盟营销平台
  • 台州云建站模板汕头seo排名公司
  • 网站关键词下降网络营销策划书论文
  • 网站建设思路方案营销平台是什么意思
  • 外贸网站中的搜索产品功能如何实现谷歌优化
  • 专做火影黄图的网站独立站seo推广
  • 深圳企业网站开发费用友情链接交换平台免费
  • 做网站开发的需求文档网络营销软文范例500字
  • 广州家具网站建设安卓优化神器
  • 网站建设公司前景今日头条新闻推荐
  • 南阳做网站优化公司免费获客平台
  • 做网站之前要备案是什么意思西安新站网站推广优化
  • 融资融券配资网站建设如何做好线上推广
  • 网站有什么2022年网络流行语
  • 网站建设所需基本资料小程序开发需要多少钱
  • 做网站阜新电脑零基础培训班
  • 设计师可以做兼职的网站管理培训课程
  • 一 一个甜品网站建设目标seo职业技能培训班
  • 做网站要不要学ps百度链接提交收录入口
  • 哈尔滨信息网招聘信息奉节县关键词seo排名优化
  • 为个人网站做微信服务号app开发公司排名
  • 营销型网站建站系统乔拓云网站建设
  • 网站开发的关键计算机资源计划优化seo方法
  • 登陆工伤保险网站 提示未授权 怎么做关键词爱站网关键词挖掘工具
  • 上海网站建设备案号哈尔滨百度网站快速优化