在项目中使用Kafka接收和发送消息的注意点

项目中用到Kafka作消息的发送和接收,一次因为Kafka队列连接出错,导致系统问题,业务代码执行完成后,发送消息出现异常,结果导致业务系统请求超时,没有做出正确响应。

经过这次的事故,总结了使用Kafka时需要注意的地方:

1、根据业务需要,发送数据消息到Kafka可能需要在业务逻辑处理完成之后,特别是在对外服务的接口中,为保证接口不超时,发送消息到Kafka,把消息丢到线程池中,而不要使用Kafka提供的send方法直接方法,否则出现异常,对系统本身 以及对 接口响应时间 都有影响,在线程池中,实现send功能,并且要捕获异常。

2、订阅Kafka消息的Consumer代码,也要捕获异常,防止因为其它的异常,导致系统业务不能正常使用

3、无论是请求外部系统的接口,还是提供给外部系统的接口,都要捕获异常,不要因为外部系统接口的问题,导致自身系统业务逻辑出错

猜你喜欢

转载自edward-lee.iteye.com/blog/2328740