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

thinkphp 网站模版给网站做cdn

thinkphp 网站模版,给网站做cdn,怎么做微信网页制作,免费好用的crm系统RabbitMQ-默认读、写方式介绍 RabbitMQ-发布/订阅模式 目录 1、概述 2、直连交换机 3、多重绑定 4、具体代码实现 4.1 生产者部分 4.2 消费者部分 5、运行代码 6、总结 1、概述 直连交换机#xff0c;可以实现类似路由的功能#xff0c;消息从交换机发送到哪个队列…RabbitMQ-默认读、写方式介绍 RabbitMQ-发布/订阅模式 目录 1、概述 2、直连交换机 3、多重绑定 4、具体代码实现 4.1 生产者部分 4.2 消费者部分  5、运行代码 6、总结 1、概述 直连交换机可以实现类似路由的功能消息从交换机发送到哪个队列直连交换机是支持配置的他可以根据不同的routing key将消息转发到不同的队列当中。 在上一篇《RabbitMQ-发布/订阅模式》中介绍过绑定过程类似 err ch.QueueBind(q.Name, // queue name, // routing keylogs, // exchangefalse,nil) binding就是建立起了交换机与队列之间的关系什么样子的message路由到哪个队列就是由绑定决定的在rabbitmq的官方文档中为了避免和Channel.Publish函数的key参数混淆在bind函数中的routing key称之为binding key比如 err ch.QueueBind(q.Name, // queue nameblack, // binding keylogs, // 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, // namedirect, // typetrue, // durablefalse, // auto-deletedfalse, // internalfalse, // no-waitnil, // arguments ) 第二步发送消息 body : Hello World by dircet exchangeerr ch.Publish(logs, // exchangeinfo, // 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 nameinfo, // routing key(binding key)logs, // exchangefalse,nil,) 5、运行代码 生产者部分全部代码 package mainimport (fmtamqp github.com/rabbitmq/amqp091-go )func main() {conn, err : amqp.Dial(amqp://guest:guestlocalhost: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 namedirect, // exchange typetrue,false,false,false,nil)if err ! nil {fmt.Println(Failed to declare an exchange)return}body : Hello World by dircet exchangeerr ch.Publish(logs, // exchangeinfo, // routing keyfalse,false,amqp.Publishing{ContentType: text/plain,Body: []byte(body),})if err ! nil {fmt.Println(Failed to publish a message)return} }消费者部分全部代码 package mainimport (fmtamqp github.com/rabbitmq/amqp091-go )func main() {conn, err : amqp.Dial(amqp://guest:guestlocalhost: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 nameinfo, // 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 CTRLC)-forever }启动消费者程序启动后从RabbitMQ控制台就会看到一个队列 之后运行生产者部分代码生产者发送消息后消费者侧就会接收到生产者发来的消息 6、总结 以上就是rabbitmq直连交换机的使用方式示例代码只是做了简单的演示对于多重绑定各种路由规则可以自行尝试直连交换机模式为开发者提供了灵活的路由规则推荐使用。
http://www.w-s-a.com/news/384243/

相关文章:

  • 高端企业网站建设公司怎么做实用性建设网站都需要哪些
  • 网站备案必须要幕布吗易企秀网站怎么做轮播图
  • 南昌网站排名优化四线城市网站建设方向及营利点
  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱
  • wordpress做门户seo培训价格