请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问向kafak发送消息是同步生产者和异步生产者有什么不同?

老师,您好!
GetKafkaSyncProducer()调用的是 sarama.SyncProducer
GetKafkaAsyncProducer()调用的是 sarama.AsyncProducer
请问 同步和异步的方式有什么不同吗?各有什么优势?如果使用异步方法应该注意些什么?

正在回答 回答被采纳积分+3

1回答

少林码僧 2023-02-10 18:36:40

使用异步发送最快,但取法立即获得发送结果,可以在异步回调中拿到消息的发送结果,在消息顺序严格要求的场景没法补发消息。但这种发送方式是异步并发发送,不会阻塞,所以发送效率非常高。

需要注意的是一般不涉及到金钱交易类的项目,对消息有序性和可靠性没有绝对追求的场景可以使用异步的方式。异步的方式在性能上相比同步差距非常大,如果并发处理的数据量比较大应该首先考虑异步的方式。我们可以通过其他手段来发现异常去确保数据的最终一致性。

同步方式最可靠可以重试,最大程度保障网络异常消息丢失等情况,可以通过异常自己做本地处理,可以确保消息不丢失,但在性能上会很低。可以根据生产的场景选择同步发送或者异步加回调的方式。


1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信