关于easynetQ的问题

偶是菜鸟 2017-01-17 03:56:43
bus.Publish(msg, x => x.WithTopic(msg.MessageRouter));

这个代码没有理解,既没有指定队列,也没有绑定,发布的消息不是丢失了吗?
那什么时候指定队列绑定呢
...全文
366 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
若凝晨 2020-10-16
  • 打赏
  • 举报
回复
麻烦问下,easynetq是不是只有topic,用不了fanout
wanghui0380 2017-01-17
  • 打赏
  • 举报
回复
他设计上是这样玩的 发步、订阅模式 发布者只管发布。订阅者去订阅,如果发布着的某条消息符合订阅规则,他就订阅 你可以测试一下topic的通配符 假设 publish key 是 abc.* 如果说是发布者主动发,他的意思就是 发布到 前缀是 abc.的所有队列,但其实不是,这种消息只会发到key是abc.*的消费者上 但是换过来测试,如果publish key是 abc.a ,他倒是能发布到 key 为 abc.*的消费者上。 这个测试足够说明,是由消费者订阅查找发布信息,而不是发布者去主动找队列
偶是菜鸟 2017-01-17
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
同志,要学好英文。 我不玩这个easynetq,也看得出来WithTopic,这是topic 同样我也看的出来MessageRouter,这是路由 那么你还有疑问么? 至于什么bind一类,别被rabbitmq官方那份文档给玩坏了,那份文档简直了,bind其实只要一次(甚至可以不要,因为你可以直接在bs管理器在管理页面直接定义),publish其实也就只管 “交换机名,路由,发布类型”这个几个玩意就成 ps:请x.WithTopic转向引用,看看这里代码,估计里面就是交换机,路由定义。(发布只管发布,不管队列,他是通过路由发滴,不是通过队列名发的,所以你这里只需要定义一下交换机就好)另外建议在看看X对象定义,估计他会继承实现一些东西或者会打一些特性标记来标记你口里的队列和bind配置
很感谢,测试发现在订阅时候生成queue的,所以很奇怪不订阅消息就丢失。这设计的。。。。
wanghui0380 2017-01-17
  • 打赏
  • 举报
回复
同志,要学好英文。 我不玩这个easynetq,也看得出来WithTopic,这是topic 同样我也看的出来MessageRouter,这是路由 那么你还有疑问么? 至于什么bind一类,别被rabbitmq官方那份文档给玩坏了,那份文档简直了,bind其实只要一次(甚至可以不要,因为你可以直接在bs管理器在管理页面直接定义),publish其实也就只管 “交换机名,路由,发布类型”这个几个玩意就成 ps:请x.WithTopic转向引用,看看这里代码,估计里面就是交换机,路由定义。(发布只管发布,不管队列,他是通过路由发滴,不是通过队列名发的,所以你这里只需要定义一下交换机就好)另外建议在看看X对象定义,估计他会继承实现一些东西或者会打一些特性标记来标记你口里的队列和bind配置

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧