大数据Kafka简单的生产者例子

在这一节中将创建一个使用Java客户端发布和使用消息的应用程序。 Kafka生产者客户端由以下API组成。

KafkaProducer API

下面来了解Kafka生产者API。 KafkaProducer API的核心部分是KafkaProducer类。 KafkaProducer类提供了一个选项,用于将Kafka代理的构造函数与以下方法连接起来。

  • KafkaProducer类提供send()方法来异步发送消息到主题。 send()的签名如下 –
    producer.send(new ProducerRecord<byte[],byte[]>(topic, partition, key1, value1) , callback);  
  • ProducerRecord – 生产者管理等待发送的记录缓冲区。
  • Callback – 服务器确认记录时执行的用户提供的回调函数(null表示无回调)。
  • KafkaProducer类提供了一个flush方法来确保所有先前发送的消息已经实际完成。 flush方法的语法如下 –
    public void flush()  
  • KafkaProducer类提供了partitionFor方法,该方法有助于获取给定主题的分区元数据。 这可以用于自定义分区。 这种方法的签名如下 –
    public Map metrics()  

    它返回生产者维护的内部度量图。

  • public void close() – KafkaProducer类提供close方法,阻塞直到完成所有先前发送的请求。

生产者API

Producer API的核心部分是Producer类。 Producer类提供了一个选项,通过以下方法在其构造函数中连接Kafka代理。

Producer类

Producer类提供send方法,使用以下签名将消息发送到单个或多个主题。

public void send(KeyedMessaget<k,v> message)   - sends the data to a single topic,par-titioned by key using either sync or async producer.  public void send(List<KeyedMessage<k,v>>messages)  - sends data to multiple topics.  Properties prop = new Properties();  prop.put(producer.type,”async”)  ProducerConfig config = new ProducerConfig(prop);  

有两种类型的生产者 – 同步和异步。

同样的API配置也适用于Sync生产者。 它们之间的区别是同步生产者直接发送消息,但在后台发送消息。 当想要更高的吞吐量时,首选异步生产者。 在0.8之前的版本中,异步生产者没有回调send()来注册错误处理程序。异步生产者仅在当前版本0.9中可用。

public void close()

Producer类提供close()方法来关闭所有Kafka 经纪人的生产者池连接。

配置设置

Producer API的主要配置设置在下表中列出以便更好地理解 –

<
编号 配置设置 描述
1 client.id 确定生产者应用
2 producer.type 是同步还是异步?
3 acks acks配置控制生产者请求下的标准被认为是完整的。
4 retries 如果生产者请求失败,则自动重试具有特定的值。
5 bootstrap.servers 引导经纪人(brokers)列表。
6 linger.ms 如果想减少请求的数量,可以将linger.ms设置为大于某个值的值。
7 key.serializer 序列化器接口的键。
8 value.serializer 序列化器接口的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值