也许我就是个跑偏的人,这个系列越写越偏
基准测试
本来是跟原版里面./bench.sh
做一些基准测试,在我这台垃圾电脑上面
写性能
最后发现如果没有SyncTimout
(就是超时落盘)这个,dtnsq
写竟然40w/s
,而nsq
才18w/s~20w/s
没办法加上了默认了SyncTimout(2s)
,但是dtnsq
也是30w/s
大家在落盘之前都是内存操作,如果有性能差异,我猜测是 channel
导致的
读性能
读性能没法比较,因为当前dtnsq
根本没有做push
,只是定时拉取
修改
我需要将一些代码细节优化(不是为了写性能),稍微向生产方向靠近再来进一步测试
优化定时器
之前的消费者的pull
定时器是从nsqd
里面触发的,很容易将整个nsqd``lock
住
这里面改成每一个读backend
自行维护一个定时器
控制反转
之前写代码的时候,有考虑一些控制反转,但是还需要细致下去,主要是为了做单元测试
不然现在改几行根本不敢确定有没有影响之前的功能
(未完待续)