golang nsq 同一个topic有多个channel,同时项目又互相引用事出现的问题

同一个topic下 不同channel分多个项目的时候,如果一个项目引用了别的项目包(这两个项目连的是同一个topic),那么被引用的项目就需要手动初始化mq,不能使用Init,因为会导致mq初始化两次,在一个channel下链接了两个消费者导致mq进行了负载均衡.

原文地址:https://www.cnblogs.com/xcx-bwt/p/12179332.html

时间: 2024-10-09 06:05:26

golang nsq 同一个topic有多个channel,同时项目又互相引用事出现的问题的相关文章

【RocketMQ】同一个项目中,同一个topic,可以通过不同的tag来订阅消息吗?

一.问题答案 是不可以的 而且后注册的会替换前注册的,MqConsumer2会替换MqConsumer,并且只结束tag-2的消息 /** * @date 2019/05/28 */ @Component @Slf4j public class MqConsumer implements MessageConsumer { @Override @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUI

golang语言并发与并行——goroutine和channel的详细理解(一)

如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. 以下是我入门的学习笔记. Go语言的goroutines.信道和死锁 goroutine Go语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻. 以下的程序,我们串行地去执行两次loop函数: func loop() { for i := 0; i < 10; i++ { f

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十五)Structured Streaming:同一个topic中包含一组数据的多个部分,按照key它们拼接为一条记录(以及遇到的问题)。

需求: 目前kafka的topic上有一批数据,这些数据被分配到9个不同的partition中(就是发布时key:{m1,m2,m3,m4...m9},value:{records items}),mx(m1,m2...m9)这些数据的唯一键值:int_id+start_time,其中int_id和start_time是topic record中的记录.这9组数据按照唯一键值可以拼接(m1.primarykey1,m2.primarykey1,m3.primarykey1.....m9.prim

osx 终端搭建SVN服务器后,在同一个代码仓库中添加多个项目。

搭建好服务器,创建好代码库后,这里创建的代码库名称是repo 将项目project01导入到代码库repo中的folder01文件夹下 svn import /Users/zhang/Documents/project01 svn://localhost/repo/folder01 --username=zh --password=123 -m "导入第一个项目"   这个操作将project01下的文件导入到folder01里,并不是将project01这个文件夹放到folder01

golang sms阿里云发送短信(公司实际项目)

话不多说,直接上代码!!! 要先下载两个包 (可以go get -u +你想要的包) github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi package main import ( "fmt" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" &

nsq topic和channel的区别

topic:一个可供订阅的话题.channel:属于topic的下一级,一个topic可以有多个channel.二者关系可以再参考下面两文章:http://www.cnblogs.com/forrestsun/p/3892710.htmlhttp://www.linuxeden.com/html/news/20140301/148960.html 举个例子:topic:比做一个广播,如交通广播.打开收音机,你可以换很多频率,如果换到91.6MHZ,你就会听到交通广播,(我们这里交通广播是91.6

nsq源码阅读笔记之nsqd(四)——Channel

与Channel相关的代码主要位于nsqd/channel.go, nsqd/nsqd.go中. Channel与Topic的关系 Channel是消费者订阅特定Topic的一种抽象.对于发往Topic的消息,nsqd向该Topic下的所有Channel投递消息,而同一个Channel只投递一次,Channel下如果存在多个消费者,则随机选择一个消费者做投递.这种投递方式可以被用作消费者负载均衡. Channel从属于特定Topic,可以认为是Topic的下一级.在同一个Topic之下可以有零个

golang使用Nsq(转)

为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯.一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错.其中支持动态拓展,消除单点故障等特性,  都可以很好的满足我的需求 下面上一张Nsq与其他mq的对比图,看上去的确强大.下面简单记录一下Nsq的使用方法 图片来自golang2017开发者大会 Nsq服务端 Nsq服务端简介 在使用Nsq服务之前,还是有

[golang]单向channel的应用“生产消费者模型”

单向channel应用"生产消费者模型" 单向channel最典型的应用是"生产者消费者模型" 所谓"生产者消费者模型": 某个模块(函数等)负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.协程.线程.进程等).产生数据的模块,就形象地称为生产者:而处理数据的模块,就称为消费者. 单单抽象出生产者和消费者,还够不上是生产者/消费者模型.该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介.生产者把数据放入