采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,您好! GetKafkaSyncProducer()调用的是 sarama.SyncProducer GetKafkaAsyncProducer()调用的是 sarama.AsyncProducer 请问 同步和异步的方式有什么不同吗?各有什么优势?如果使用异步方法应该注意些什么?
使用异步发送最快,但取法立即获得发送结果,可以在异步回调中拿到消息的发送结果,在消息顺序严格要求的场景没法补发消息。但这种发送方式是异步并发发送,不会阻塞,所以发送效率非常高。
需要注意的是一般不涉及到金钱交易类的项目,对消息有序性和可靠性没有绝对追求的场景可以使用异步的方式。异步的方式在性能上相比同步差距非常大,如果并发处理的数据量比较大应该首先考虑异步的方式。我们可以通过其他手段来发现异常去确保数据的最终一致性。
同步方式最可靠可以重试,最大程度保障网络异常消息丢失等情况,可以通过异常自己做本地处理,可以确保消息不丢失,但在性能上会很低。可以根据生产的场景选择同步发送或者异步加回调的方式。
登录后可查看更多问答,登录/注册
全新 ES8 配合技术组件,实现高性能搜索
196 7
385 4
435 3
425 2
328 2