• Sch0ng
    2021-08-16
    数据采集服务分数据上报和数据采集,先做拆分再有针对性达成目标性能。 把功能抽象成模型,再把实现封装成独立的模块,应用依赖模型的接口,不依赖具体的实现。

    作者回复: 到位!

    共 2 条评论
    5
  • Vackine
    2021-08-07
    pump如果中途退出了,会记录已经消费的位置么?

    作者回复: 这里暂时不支持。 老哥,可以尝试将redis切换成kafka,kafka可以记录消费位置

    共 2 条评论
    5
  • 左耳朵东
    2022-03-14
    func (r *Analytics) Start() { analytics = r r.store.Connect() // start worker pool atomic.SwapUint32(&r.shouldStop, 0) for i := 0; i < r.poolSize; i++ { r.poolWg.Add(1) go r.recordWorker() } // stop analytics workers go r.Stop() } 倒数第二行代码 go r.Stop(),这里把 recordsChan 马上又关闭了?那后面还怎么给这个 channel 发消息?

    作者回复: 这里是个bug哈,master分支有纠正过来,这里我让编辑改下

    
    1
  • Geek_63505f
    2022-01-22
    老师这句话是什么意思 viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_", "-", "_")) strings.NewReplacer里面不应该是("-","_")这样吗?前面那两个字符多出来是干嘛用的?

    作者回复: 将 . 也转换为_

    共 2 条评论
    1
  • 静心
    2021-10-29
    这个插件化的pump模型抽象的真好,感觉这个pump项目完全可以用到生产了。

    作者回复: 这个模型就是源自亿级QPS的生产项目,完全可以用到生产环境中。

    
    1
  • Ethan Liu
    2021-09-09
    应用产生的数据放到日志中,再由数据上报服务读取至bufferd channel吗? 同步上报方式指的是rpc吗?

    作者回复: 同步上报指的是:调用上报接口,并阻塞直到上报接口返回。

    
    1
  • 来咯
    2022-05-27 来自广东
    ensureConnection redis 重新连接 失败 应该需要sleep吧 不然日志写爆 CPU 也占满了

    作者回复: 没问题的

    
    
  • yandongxiao
    2021-12-04
    总结: 数据采集服务常见问题:不够通用化;采集服务延迟高、性能差、启停服务时会有数据丢失。 数据采集服务一般需要完成:数据上报 和 数据处理。它们一般不是同一个进程内。 数据上报:对数据压缩、支持批量上报、超时上报、优雅关停(停止接收新请求,完成服务中的请求) 数据处理:数据处理完毕后,还需要进行上报。将上报的模块做成插件化,非常重要。
    
    1