设为首页 加入收藏

TOP

说说 MQ 之 Kafka(三)(二)
2018-10-28 10:11:15 】 浏览:415
Tags:说说 Kafka
ge: (00440, Message_00440) at offset 218 Received message: (00443, Message_00443) at offset 219 org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received. Received message: (00442, Message_00442) at offset 222 Send message: (00452, Message_00452) at offset 223 to partition(1) in 7492 ms Send message: (00454, Message_00454) at offset 224 to partition(1) in 7485 ms Send message: (00455, Message_00455) at offset 225 to partition(1) in 7482 ms Send message: (00458, Message_00458) at offset 226 to partition(1) in 7473 ms Send message: (00460, Message_00460) at offset 227 to partition(1) in 7467 ms Send message: (00461, Message_00461) at offset 228 to partition(1) in 7465 ms Send message: (00462, Message_00462) at offset 229 to partition(1) in 7462 ms Send message: (00463, Message_00463) at offset 230 to partition(1) in 7459 ms Send message: (00464, Message_00464) at offset 231 to partition(1) in 7456 ms Send message: (00465, Message_00465) at offset 232 to partition(1) in 7453 ms ...... Send message: (01103, Message_01103) at offset 543 to partition(1) in 5478 ms Received message: (00631, Message_00631) at offset 310 Received message: (00633, Message_00633) at offset 311 Send message: (00451, Message_00451) at offset 220 to partition(0) in 7525 ms Received message: (00634, Message_00634) at offset 312 Send message: (00453, Message_00453) at offset 221 to partition(0) in 7518 ms Received message: (00639, Message_00639) at offset 313 Send message: (00456, Message_00456) at offset 222 to partition(0) in 7509 ms Received message: (00641, Message_00641) at offset 314 Send message: (00457, Message_00457) at offset 223 to partition(0) in 7506 ms Received message: (00643, Message_00643) at offset 315 ......

出现错误的时候,Producer 抛出了 NetworkException 异常。其中有3589条 Received 日志,3583条 Send 日志,7条 NetworkException 异常日志,发送消息的最大序号是3590,接收消息的最大序号是3589,有以下几个值得注意的地方,

  1. 宕机之前,消息的接收并不是顺序的,这是因为 topic1 有2个分区,Kafka 只保证分区上的有序;
  2. 宕机之后,出现了长段的发送日志而没有接收日志,说明 Kafka 此时正在选举,选举的过程会阻塞消费者;
  3. 从接收消息的条数和序号来看,所有的消息都收到了,没有丢(没有收到3590的消息可能是因为强制退出 client 进程的原因),发送的过程的7个异常应该只是虚警,7条异常对应序号444~450,3583条 Send 消息再加上这7条,与总消息3590条一致;

从这个实验中,可以看到,虽然 Kafka 不保证消息重复发送,但是却在尽量保证没有消息被重复发送,可能我的实验场景还不够极端,没有做出消息重复的情况。

如之前所说,如果要保持完全顺序性,需要使用单分区;如果要避免抛出 NetworkException 异常,就使用 Producer 同步发送。下面,我们重做上面的例子,不同之处是使用单分区和 Producer 同步发送,截取一段 Broker 宕机时的日志如下,

......
Sent message: (118, Message_00118)
Received message: (00118, Message_00118) at offset 117
Received message: (00119, Message_00119) at offset 118
Sent message: (119, Message_00119)
Sent message: (120, Message_00120)
Received message: (00120, Message_00120) at
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java: 未来已来 下一篇Git内部原理之Git引用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目