这篇文章主要讲解了“java分布式流处理组件Producer怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java分布式流处理组件Pr免费云主机域名oducer怎么使用”吧!首先, 在了解生产者发送消息的原理之前,我们应该先学会如何去发送消息。Kafka为我们提供了很多项目可以操作的API客户端,包括:C/C++GOPython…通过官网查看API菜单,官方文档上也是Java的版本。我们根据提示一步步操作即可~先新建maven项目,并且引入对应的****kafka-clients依赖建议:Kafka-clients依赖版本,最好和安装的kafka版本一致Kafka生产者主要靠KafkaProducer来进行操作。点击到对应的文档页面,我们可以看到关于KafkaProducerbatch.size
是一个条件,这也是后期针对生产者优化的主要参数之一。当发送消息之后,生产者会将消息进行整合。将其按照一批一批的方式发送给Broker,从而减少网络间的传输请求次数。默认情况下为16k。而如果一批数据的大小累计达到了设置的batch.size
之后,sender才会做发送数据的操作这是第一个限制下面再来介绍一个非常强势的参数:liner.ms
。生产者优化的主要参数之二。这么说吧,如果你设置的liner.ms=0,表示不延迟直接发送。那么batch.size就不会生效了而liner.ms=0属于默认配置如果数据一直没有达到设置的batch.size
大小,数据也不能不发对吧。所以Kafka也就为我们提供了这样的参数:当sender等待liner.ms设置的时间之后【单位ms】,不管数据如何都会将消息进行发送如未设置当前参数,表示没有延迟,直接发送下面举个小例子将RecordAccumulator
内存储的数据拉取出来之后,开始将其创建为一个个的Request请求。这里需要注意的是:NetworkClient并非一股脑的将全部可发送数据进行传输请求正相反,为了能够保证不同分区所对应DQueue的数据进入到对应的Broker所在的分区内,Kafka将按照ProducerConfig.ACKS_DOC
下我们也可以看到相关的说明:acks=0: 生产者不会等待Broker的应答,直接表示消息已经发送成功。而消息有没有真正达到Broker,不关心。当然了,这种方式在性能上来讲是最好的,适合一些数据不重要的场景acks=1: 生产者将消息发送到Broker之后,由Leader在本地将消息进行存储之后,返回发送成功的应答。如果Follower还没有同步到消息,Leader就已经挂了。那么此时就会出现消息丢失的情况acks=all:生产者将消息发送到Broker之后,由Leader在本地将消息进行存储,并且Follower同步完消息之后才会返回发送成功的应答。这种方式是最能保证数据安全的情况,但是性能也是最低的~最后:当Broker返回成功应答之后,RecordAccumulator中的数据将会被清理如果失败,可以尝试重试等操作感谢各位的阅读,以上就是“java分布式流处理组件Producer怎么使用”的内容了,经过本文的学习后,相信大家对java分布式流处理组件Producer怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
相关推荐: Centos6.5怎么安装vsftpd+dhcp+nfs+tftp
这篇文章主要介绍“Centos6.5怎么安装vsftpd+dhcp+nfs+tftp”的相关知识,免费云主机域名小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Centos6.5怎么安装vsftpd+dhcp+nfs+tftp”文章能…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。