你不会是程序猿吧?

filebeat -> kafka -> logstash -> elasticsearch || (kafka -> ApplicationDB ),第二个kafka消费的时候消息顺序错乱

Logstash | 作者 changxiangshimian/changxiangshimian.github.io | 发布于2019年06月21日 | 阅读数:3441

现在是通过远程的filebeat发送消息到kafka, logstash从kafka里面拿取数据进行解析,然后把解析完成的消息发送到 ES和kafka,最后通过kibana展示ES的数据(简单的展示),javaAPI读取kafka的消息(较复杂的展示) 来进行最终的效果呈现,但是我发现第一个kafka接收filebeat的消息顺序是正常的,但ES展示的时候,显示两条数据时间戳是相同的,kafka的数据消费的顺序也会可能发生错乱
PS: 需求:  现在想展示用户在某一个页面的停留时长,就是根据结束时间来获取对应的开始时间,计算页面浏览时长
 
第一个kafka接收到的消息是正常的顺序,但是再次存入kafka或ES后顺序好像不对了
 
现在用的还是单节点,只在一台服务器上面运行
 
logstash配置如下
1111111.png

 
ES数据展示
22222.png

 
 
已邀请:

fanmo3yuan

赞同来自:

这个是有可能的,你应该使用你自己的业务实践戳,而不是logstash写es的时间

juneryang

赞同来自:

可以再看下offset字段值。
可以使用写入es的事件+offset字段值两个维度来确认时间顺序。

要回复问题请先登录注册