项目提供controller接口,此接口用于发送一条消息到kafka队列中。
目前采用同步发送的方式,当发送成功后,接口返回成功响应。
问题: 如果采用异步方式,接口如何返回?如果在调用异步发送后,接口就直接返回,那么客户端如何知道此条消息发送的成功与否?
调用controller 接口发送kafka消息,如何编码,才能保证消息发送成功与失败都能得到处理,并作为返回值返回给客户端?
项目提供controller接口,此接口用于发送一条消息到kafka队列中。
目前采用同步发送的方式,当发送成功后,接口返回成功响应。
问题: 如果采用异步方式,接口如何返回?如果在调用异步发送后,接口就直接返回,那么客户端如何知道此条消息发送的成功与否?
调用controller 接口发送kafka消息,如何编码,才能保证消息发送成功与失败都能得到处理,并作为返回值返回给客户端?
异步发送肯定不能同步返回,否则整体视为同步代码,失去异步的意义,异步一般会通过回调的方式来执行相应的逻辑,Kafka异步发送会异步成功或失败回调,在回调中处理业务逻辑,而调用方(客户端)也必须支持异步处理。
1 回答2.5k 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
1 回答744 阅读✓ 已解决
1 回答1.2k 阅读
异步写入可以设置回调函数获取写入数据的metadata信息,是否写入异常等等,然后在进行相关操作。
kakfa produce java api 调用以下send方法,在服务端响应 该produce 请求后就会回调onCompletion方法。