作者回复: 会有这个风险,不过为了提升性能,需要一些权衡
作者回复: 为了性能可能要损失一些消息完整性
作者回复: 也可以比如在Kafka下,把要求严格顺序的消息写到一个partition
作者回复: 可以监控一下写入消息和处理消息的速率,看看是不是写入消息量级过大还来不及处理,还是说处理的慢了
如果处理的慢了,那么要排查处理的链路上哪处是瓶颈
作者回复: 数据库是随机写,磁盘是顺序写
作者回复: 是的,必要时可以做多级队列
作者回复: 赞
作者回复: 是的呢~
作者回复: 可以的吧 ,RocketMQ也会提供一些工具
作者回复: 对于Kafka来说是不行的
作者回复: 没有找到官方的benchmark
作者回复: 写文件一般都会写入pagecache 由操作系统来刷盘
作者回复: 也可以
作者回复: kafka本身不会空转,因为kafka消费端是拉模式,所以kafka是接受读取请求的
作者回复: 可以将描述符传输到socket缓冲区,这样可以减少一次拷贝
作者回复: 消息处理程序一般是IO密集型的,所以可以提升线程数来提升并行处理能力
作者回复: 监控程序会放弃业务消息
监控程序和业务的应用程序使用的是不同的consumer group
作者回复: 不会的,这样比如1分钟发送一个消息,相比于业务动辄每秒几十或者几百次请求来说太微不足道了
作者回复: 局域网应该不会有大量超时,可以抓包看一下,也可以看看网卡是否有丢包