美文网首页
【面试题】网络收集的面试题

【面试题】网络收集的面试题

作者: 长孙俊明 | 来源:发表于2019-10-22 22:38 被阅读0次

    丢消息怎么办?

    场景是这样。非持久化消息堆积到一定程度会写到文件里,这个过程会阻塞所有的操作,持续20到30秒。当客户端发送消息完调用close时,会期待服务端响应,如果超过15秒后还没回答,直接调用socket的close关闭tcp连接。这时,客户端发送的消息还在服务端的缓存中等待处理,不过由于心跳包的设置,会导致发生socket异常,把缓存中的数据作废掉,没处理的效果会丢失。
    解决方法

    1. 增加机器,及时消费数据。
    2. 非持久化数据变成持久化数据。

    持久化消息非常慢。

    默认情况下,非持久化数据是异步发送,持久化数据是同步发送。但是在开启事务之后,消息都是异步发送。所以在发送持久化数据时,也开启事务模式。

    消息不均匀消费。

    解决方法是设置prefetch设为1,每次处理1条消息,处理完再取。

    相关文章

      网友评论

          本文标题:【面试题】网络收集的面试题

          本文链接:https://www.haomeiwen.com/subject/aovcvctx.html