Kafka生产者---向Kafka中写入数据

一:生产者概览

1.不同的应用场景对消息有不同的需求,即是否允许消息丢失、重复、延迟以及吞吐量的要求。不同场景对Kafka生产者的API使用和配置会有直接影响。
eg:信用卡事务处理系统,不允许消息重复混和丢失,延迟最大500ms,对吞吐 量要求较高。
eg:保存网站的点击信息,允许少量的消息丢失和重复,延迟可以稍高(用户点击连接可以马上加载出页面即可),吞吐量取决于用户使用网站的频度

2.Kafka发送消息的主要步骤

消息格式:每个消息是一个ProducerRecord对象,必须指定所属的Topic和消息值Value,此外还可以指定消息所属的Partition以及消息的key。
1>序列化ProducerRecord;
2>如果ProducerRecord中指定了Partition,则Partitioner不做任何事情;否则,Partitioner根据消息的key得到一个Partition。这是生产者就知道向那个Topic下的那个Partition发送这条消息。
3>消息被添加到相应的batch中,独立线程将这些batch发送到Broker上
4>broker收到消息会返回一个响应。如果消息成功写入kafka,则返回RecordMetaData对象,该对象包含了Topic信息、Partition信息、消息在Partition中的Offset信息;若失败返回一个错误。

3.Kafka的顺序保证。Kafka保证同一个partition中的消息是有序的,即如果生生产者按照一定的顺序发送消息,broker就会按照这个顺序把他们写入partition,消费者也会按照相同的顺序读取他们。
eg:向账户先存100再取出来和先取100再

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值