nats批量publish最后一条疑似丢失
目录
问题描述
写了一个测试脚本,从数据读取一组数据,然后逐条publish到nats-server中, 确定每条都publish了
有另外一个程序中subscribe订阅,在该程序发现最后一条一直没收到
环境
-
go: 1.16
-
nats-server
程序摘要
- 发布
for _, record := range records{
...
gNatsConn.Publish(Topic, record)
time.Sleep(time.Second*0.1) //间隔越小出现的概率越大. 间隔1秒好像就没有
}
- 订阅
natsConn.Subscribe(topic, func(m *nats.Msg){
fmt.Println(m.Data)
....
}
原因以及解决办法
nats在发布消息时,有应该是用了缓存通道, 大小是1。最后一条数据有可能没被读走
发布频率较高,最后需要flush一下
佛說大乘無量壽莊嚴清淨平等覺經pdf 净土大经科注2014-doc 此生必看的科学实验-水知道答案 印光大师十念法(胡小林主讲第1集)