kafka参数配置参考和优化建议 —— 筑梦之路

这篇具有很好参考价值的文章主要介绍了kafka参数配置参考和优化建议 —— 筑梦之路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对于Kafka的优化,可以从以下几个方面进行思考和优化:

  1. 硬件优化:使用高性能的硬件设备,包括高速磁盘、大内存和高性能网络设备,以提高Kafka集群的整体性能。

  2. 配置优化:调整Kafka的配置参数,包括消息存储、副本数、日志段大小、缓冲区大小等,以提高Kafka的吞吐量和稳定性。

  3. 网络优化:优化Kafka集群的网络设置,包括网络带宽、延迟和可靠性,以确保消息能够快速、可靠地传输。

  4. 分区优化:合理划分分区,避免分区过多或过少,以充分利用集群资源并提高消息的并发处理能力。

  5. 监控优化:建立完善的监控系统,及时发现和解决Kafka集群的性能瓶颈和故障,以保障Kafka的稳定运行。

  6. 客户端优化:优化生产者和消费者的配置和代码,以提高消息的生产和消费效率。

总的来说,Kafka的优化需要综合考虑硬件、配置、网络、分区、监控和客户端等多个方面,以达到提高性能和稳定性的目的。下面我将主要从Kafka使用参数设置来说明优化的主要思路,其基本核心思想就是提高Kafka的吞吐量和降低网络延迟。

kafka参数配置参考和优化建议 —— 筑梦之路,linux系统运维,大数据,Java技术,kafka,分布式 

生产者端(Producer)的参数

  • acks:默认值为1,表示指定分区中成功写入消息的副本数量。一般不需要修改。

  • max.request.size:默认值为1048576,即1M1。这个参数比较重要,表示生产端能够发送的最大消息大小。为了避免因消息过大导致发送失败,建议适当调大,比如调到10485760即10M。

  • retries:默认值为0,表示生产端消息发送失败时的重试次数。为了解决因瞬时故障导致的消息发送失败,比如网络抖动、leader换主,其中瞬时的leader重选举是比较常见的。因此这个参数的设置显得非常重要。建议设置为一个大于0的值,比如3或者更大值。

  • compression.type:默认值为none,表示生产端是否对消息进行压缩。一般不需要修改。

  • buffer.memory:默认值为33554432,即32M。表示生产端消息缓冲池或缓冲区的大小。一般不需要修改。

  • batch.size:默认值为16384,即16KB。发送到缓冲区中的消息会被分为一个一个的batch,分批次的发送到broker 端,这个参数就表示batch批次大小。可以根据实际情况或者压测情况来更改这个值,这个值太小,会导致频繁的网络请求,从而导致吞吐量下降,这个值太大会导致一条消息需要等待很长的时间才能发送出去,会增加网络的延迟。

  • linger.ms:默认值为0。用来控制batch最大的空闲时间,超过该时间的batch也会被发送到broker端。建议修改范围10~100之间,影响结果可以参考batch.size.

  • request.timeout.ms:默认值为30000,即30s。这个参数表示生产端发送请求后等待broker端响应的最长时间。一般不需要修改。

  • max.in.fight.requests.per.connection:默认值为5。这个参数非常重要,表示生产端与broker之间的每个连接最多缓存的请求数。一般不需要修改。

代理端(Broker)的参数

  • broker.id:默认值为0。每个broker都可以用一个唯一的非负整数id进行标识。你可以选择任意你喜欢的数字作为id,只要id是唯一的即可。

  • log.dirs:默认值为/tmp/kafka-logs。kafka存放数据的路径。这个路径并不是唯一的,可以是多个,路径之间只需要使用逗号分隔即可;每当创建新partition时,都会选择在包含最少partitions的路径下进行。

  • port:默认值为6667。server接收客户端连接的端口。根据实际网络环境和安全需求进行设置。

  • zookeeper.connect:默认值为null。ZooKeeper连接字符串的格式为:hostname:port。为了当某个host宕掉之后你能通过其他ZooKeeper节点进行连接,你可以按照以下方式制定多个hosts:hostname1:port1, hostname2:port2, hostname3:port33。

  • message.max.bytes:默认值为1000000。server可以接收的消息最大尺寸。重要的是,consumer和producer有关这个属性的设置必须同步,否则producer发布的消息对consumer来说太大。

  • num.network.threads:默认值为3。server用来处理网络请求的网络线程数目。一般你不需要更改这个属性。

  • num.io.threads:默认值为8。server用来处理请求的I/O线程的数目。这个线程数目至少要等于硬盘的个数。

  • background.threads:默认值为4。用于后台处理的线程数目,例如文件删除。你不需要更改这个属性。

  • queued.max.requests:默认值为500。在网络线程停止读取新请求之前,可以排队等待I/O线程处理的最大请求个数。根据实际业务需求进行设置。

  • fetch.min.bytes:表示Broker端积攒了多少数据就可以返回给consumer端

  • fetch.max.bytes: 默认值:50MB  消费者获取服务端一批数据最大的字节数, 这个参数主要受到下面两个参数的限制

message.max.bytes = broker配置 max.message.bytes = topic配置

消费者端(Consumer)的参数

  • fetch.min.bytes:默认值为1。消费者从服务器获取的最小数据量。如果设置为1,则消费者尽可能地从服务器获取数据;如果设置为1MB,则消费者会等待直到1MB的数据可用才从服务器获取。

  • fetch.max.wait.ms:默认值为500。消费者等待从服务器获取数据的最长时间。

  • max.partition.fetch.bytes:默认值为1048576,即1MB。消费者一次从服务器获取每个分区的最大字节数。

  • session.timeout.ms:默认值为30000,即30s。消费者在被认为死亡之前可以与服务器断开连接的时间。

  • auto.offset.reset:默认值为latest。消费者在读取一个没有偏移量的分区或者偏移量无效的情况下该如何做。

原文链接:Kafka主要参数设置及优化建议 

作为搜集。文章来源地址https://www.toymoban.com/news/detail-816185.html

到了这里,关于kafka参数配置参考和优化建议 —— 筑梦之路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s nfs-client 添加挂载参数 —— 筑梦之路

    为什么要使用 noresvport 参数挂载NAS?不重新挂载会有什么后果? 如果发生网络切换或者后端服务的HA倒换,小概率会造成NFS文件系统阻塞,那就可能需要几分钟时间连接才会自动恢复,极端情况下甚至需要重启ECS才能恢复。使用 noresvport 参数后,这个恢复几秒就可以自动完成

    2024年02月10日
    浏览(28)
  • linux bash shell变量操作符 —— 筑梦之路

    ${var} 返回变量var的内容,单独使用时有没有{}一样,混合多个变量和常量时,用{}界定变量名 ${#var} 返回变量var内容的长度 ${var:offset} 从变量var中的偏移量offset开始截取到字符串结尾的子字符串,offset从0开始 ${var:offset:length} 从变量var中的偏移量offset开始截取长度为length的子字

    2024年02月04日
    浏览(30)
  • 图解Kafka Producer常用性能优化配置参数

    bootstrap.servers:Kafka broker服务器地址列表, , 分开,可不必写全,Kafka内部有自动感知Kafka broker的机制 client.dns.lookup:客户端寻找bootstrap地址的方式,支持两种方式: resolve_canonical_bootstrap_servers_only:依据bootstrap.servers提供的主机名(hostname),根据主机上的名称服务返回其IP地址

    2024年02月03日
    浏览(26)
  • 云原生环境下JAVA应用容器JVM内存如何配置?—— 筑梦之路

    Docker环境下的JVM参数非定值配置 —— 筑梦之路_docker jvm设置-CSDN博客 之前简单地记录过一篇,这里在之前的基础上更加细化一下。 使用Java开发且设置的JVM堆空间过小时,程序会出现系统内存不足OOM(Out of Memory)的问题。事件中心的OOM事件是指系统内存不足时,触发了Linux的

    2024年02月06日
    浏览(35)
  • linux下构建rocketmq-dashboard多架构镜像——筑梦之路

    接上篇:linux上构建任意版本的rocketmq多架构x86 arm镜像——筑梦之路-CSDN博客 这里来记录下构建rocketmq-dashboard多架构镜像的方法步骤。 当前rocketmq-dashboard只有一个版本,源码地址如下: https://dist.apache.org/repos/dist/release/rocketmq/rocketmq-dashboard/1.0.0/rocketmq-dashboard-1.0.0-source-release

    2024年02月06日
    浏览(30)
  • K8S 集群应用配置coredns实现访问内网域名 —— 筑梦之路

    问题: 在内网环境中,服务器不能连接互联网,某些服务直接使用ip访问又不方便,于是直接在hosts中配置域名解析,而K8S集群中的应用需要访问这些服务,pod容器内却不能解析,此时该怎么解决呢? 解决方法: 第一种方法:内网自建DNS服务,每台主机DNS都指向该dnsf服务器

    2024年02月15日
    浏览(30)
  • linux上构建任意版本的rocketmq多架构x86 arm镜像——筑梦之路

    目前市面上和官方均只有rocketmq x86架构下的docker镜像,而随着国产化和信创适配的需求越来越多,显然现有的x86架构下的docker镜像不能满足多样化的需求,因此我们需要根据官方发布的版本制作满足需求的多架构镜像,以在不同cpu架构下部署使用。  rocketmq官方网站:RocketM

    2024年02月08日
    浏览(41)
  • 助力成长的开源项目 —— 筑梦之路

    免费的闯关式 SQL 自学教程网站,从 0 到 1 带大家掌握常用 SQL 语法,目前一共有 30 多个关卡,希望你在通关的时候,变身为一个 SQL 高手。除了闯关模式之外,这个项目支持自由选择关卡、自定义关卡、SQL 在线练习广场等功能,方便自由地查漏补缺。 GitHub 地址→GitHub - li

    2024年02月03日
    浏览(29)
  • 开源CDN软件GoEdge —— 筑梦之路

    官方网站:GoEdge CDN - 制作自己的CDN - GoEdge CDN | 自建CDN GoEdge是一款管理分布式CDN边缘节点的开源工具软件,目的是让用户轻松地、低成本地创建CDN/WAF等应用。 免费 - 开源、免费、自由、开放 简单 - 架构简单清晰,安装简单,使用简单,运维简单 高扩展性 - 可以自由扩展新的

    2024年02月03日
    浏览(31)
  • SecDevOps 相关知识了解学习 —— 筑梦之路

    SecDevOps指的是将安全实践整合到DevOps流程中。它强调了软件开发人员、IT安全团队和运营人员之间的合作、沟通和自动化的重要性,以确保安全性融入软件开发生命周期。 通过采用SecDevOps方法,组织可以在开发过程的早期阶段解决安全风险。这可以导致更快的交付安全的软件

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包