kafka mqtt 各种超时机制

我们做的程序中一般都会有一些超时机制,来防止一些响应长时间没有反应,对程序造成影响,当然kafka  mqtt

 同样有这种机制。

kafka:

发布:

max.block.ms

配置控制了KafkaProducer.send()并将KafkaProducer.partitionsFor()被阻塞多长时间。由于缓冲区已满或元数据不可用,这些方法可能会被阻塞止。用户提供的序列化程序或分区程序中的阻塞将不计入此超时。

默认是60s,send是阻塞方法,如果60s还没有发送成功,程序会打印log日志

订阅:

max.poll.interval.ms

意思是相邻两次poll 的最大间隔时间,默认300s,如果超过这个时间,提交offset会失败

mqtt:

发布:

如果mqtt服务不可用,send 直接报错。

订阅:

Keep.alive.interval

心跳时间,如果在心跳时间线程阻塞,服务会断开连接,等下一次请求重新连接

不管kafka mqtt 都有心跳时间设置和超时设置,超时设置要大于心跳时间设置,kafka的心跳线程是单独的,不会因为业务阻塞而不发送心跳消息。mqtt还不知道

 

 

 

你可能感兴趣的:(kafka mqtt 各种超时机制)