首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kafka同步发送vs飞行请求

Kafka同步发送和飞行请求是两种不同的消息传递方式。

  1. Kafka同步发送:
    • 概念:Kafka是一种分布式流处理平台,它通过将消息分区并存储在多个服务器上来实现高吞吐量、可扩展性和容错性。同步发送是指在发送消息时,发送方会等待消息被成功写入Kafka集群的所有副本后才返回成功的响应。
    • 优势:同步发送可以确保消息的可靠性,因为只有当所有副本都成功写入后才会返回成功响应。这种方式适用于对消息的可靠性要求较高的场景,如金融交易等。
    • 应用场景:同步发送适用于需要确保消息不丢失的场景,如关键业务数据的传输、重要通知的发送等。
    • 推荐的腾讯云相关产品:腾讯云消息队列 CMQ(Cloud Message Queue)是一种高可靠、高可用的分布式消息队列服务,可满足异步通信、流量削峰、解耦、消息通知等需求。详情请参考:腾讯云消息队列 CMQ
  • 飞行请求:
    • 概念:飞行请求是一种异步消息传递方式,发送方在发送消息后不会等待消息被接收方处理完成的响应。发送方只需将消息发送到目标地址,然后继续执行后续操作,不会阻塞等待。
    • 优势:飞行请求可以提高系统的响应速度和吞吐量,因为发送方不需要等待接收方的响应。这种方式适用于对实时性要求较高、不需要确保消息可靠性的场景。
    • 应用场景:飞行请求适用于实时通信、实时数据传输等场景,如聊天应用、实时监控系统等。
    • 推荐的腾讯云相关产品:腾讯云消息队列 CMQ(Cloud Message Queue)也支持飞行请求方式,可以满足实时通信、实时数据传输等需求。详情请参考:腾讯云消息队列 CMQ

总结:Kafka同步发送和飞行请求是两种不同的消息传递方式,适用于不同的场景。同步发送适用于对消息可靠性要求较高的场景,而飞行请求适用于对实时性要求较高的场景。腾讯云消息队列 CMQ是一种可供选择的消息队列服务,可以满足这两种方式的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • RocketMQ和Kafka应用场景与选型[通俗易懂]

    1、适用场景 kafka适合日志处理 rocketmq适合业务处理 结论:两者没有区别,根据具体业务定夺 2、性能 kafka单机写入TPS号称在百万条/秒 rocketmq大约在10万条/秒 结论:追求性能方面,kafka单机性能更高 3、可靠性 kafka使用异步刷盘方式,异步Replication rocketmq支持异步/同步刷盘,异步/同步Replication 结论:rocketmq所支持的同步方式提升了数据的可靠性 4、实时性 kafka和rocketmq均支持pull长轮询,rocketmq消息实时性更高 结论:rocketmq胜出 5、支持的队列数 kafka单机超过64个队列/分区,消息发送性能降低严重 rocketmq单机支持最高5W个队列,性能稳定 结论:长远看,rocketmq胜出, 6、消息顺序性 kafka某些配置下,支持消息顺序,但是一台Broker宕机后,就会产生消息乱序 rocketmq支持严格的消息顺序,一台Broker宕机后,发送消息会失败,但是不会乱序 结论:rocketmq胜出 7、消息失败重试机制 kafka消费失败不支持重试 rocketmq消费失败支持定时重试,每次重试间隔时间顺延 8、定时/延时消息 kafka不支持定时消息 rocketmq支持定时消息 9、分布式事务消息 kafka不支持分布式事务消息 rocketmq未来会支持 10、消息查询机制 kafka不支持消息查询 rocketmq支持根据message id查询消息,也支持根据消息内容查询消息 11、消息回溯 kafka可以按照offset回溯消息 rocketmq支持按照时间回溯消息,例如从一天之前的某时某分开始重新消费消息 问题一:push和pull模式 push模式:客户端与服务端建立连接后,当服务端有消息时,将消息推送到客户端 pull模式:客户端不断的轮询请求服务端,来获取新的消息 在具体实现时,push和pull模式都是采用消费端主动拉取的方式,即consumer轮询从broker拉取消息 区别: push 方式中,consumer把轮询过程封装了,并注册了MessageListener监听器,取到消息后,唤醒MessageListener的consumerMessage来消费,用户而言,觉得消息被推送过来的 pull方式中,取消息的过程需要用户自己写,首先通过打算消费的Topic拿到MessageQueue的集合,遍历MessageQueue集合,然后针对每个MessageQueue批量获取消息,一次取完之后,记录该队列下一次要取的开始offset,直到取完了,再换另一个MessageQueue 疑问:既然都是采用pull方式实现,rocketmq怎么保证消息的实时性? 长轮询:rocketmq时采用长轮询的方式实现的,指的是在请求的过程中,若是服务器端数据并没有更新,那么则将这个连接挂起,直到服务器推送新的数据,再返回,然后进入循环周期 客户端像传统轮询一样从服务端请求数据,服务端会阻塞请求不会立刻返回,直到有数据或者超时才返回给客户端,然后关闭连接,客户端处理完响应信息后再向服务器发送新的请求

    03

    图解:Kafka 水印备份机制

    高可用是很多分布式系统中必备的特征之一,Kafka 日志的高可用是通过基于 leader-follower 的多副本同步实现的,每个分区下有多个副本,其中只有一个是 leader 副本,提供发送和消费消息,其余都是 follower 副本,不断地发送 fetch 请求给 leader 副本以同步消息,如果 leader 在整个集群运行过程中不发生故障,follower 副本不会起到任何作用,问题就在于任何系统都不能保证其稳定运行,当 leader 副本所在的 broker 崩溃之后,其中一个 follower 副本就会成为该分区下新的 leader 副本,那么问题来了,在选为新的 leader 副本时,会导致消息丢失或者离散吗?Kafka 是如何解决 leader 副本变更时消息不会出错?以及 leader 与 follower 副本之间的数据同步是如何进行的?带着这几个问题,我们接着往下看,一起揭开 Kafka 水印备份的神秘面纱。

    01
    领券