searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

kafka上线部署容量评估

2023-07-26 12:31:44
47
0

       kafka是一种分布式,支持多分区、多副本,顺序持久性的消息系统,目前大量运用到各公司中业务中,解决各种削峰、解耦、缓冲、增加吞吐量的业务场景。 它具备的特性、运用场景以及设计思路,这里就不赘述了。今天在这里做个上线方案磁盘容量、带宽评估小总结,以及交流。

       线上kafka集群需要多少容量的磁盘呢?kafka将消息顺序持久化到磁盘,保存的时间可以配置,过期后会自动删除,需要结合自身业务实际场景来规划一个合理的磁盘空容量。下面我将举例一个小业务场景举例思考这个问题。

       资讯业务规划,每日有5万篇资讯,平均每篇2kb大小,复制保存三份(尽量为一个主题配置3个副本),考虑到资讯消息及时性特性,数据保留期限仅为三周时间,消息总容量为 5w * 2kb * 3  大概是 293Mb。kafka集群保存数据分区可以想象成表,其中除了保存消息数据,还有其他类型数据,比如索引数据,通常会预留出10%的冗余数据量,因此单日总容量大小为 322Mb。前面提到保留3周,即有效数据整体容量为 322Mb * 21 = 6.8Gb,这个容量对于一个线上业务来说是很小了。

       上述是计算总磁盘容量的方法。 kafka是一种依赖网络大量进行数据传输的分布式框架组件,带宽流量很容易成为瓶颈问题。 就以一般公司机器网络的配置1Gbps的千兆网络来举例。带宽资源的估算,可以说是对kafka服务器数量的估算。上述例子中,总容量不大,几乎可以忽略,完全可以跟其他业务共用集群,实际上线上业务大多数这么做,只是区分主题。

       下面以日志服务的例子说明下带宽资源的估算。现在很多业管跟中台之间有很多交互,其中日志查询也一种很常用的场景。千兆网卡的机器,即每秒处理1Gb的数据,业界往常使用的经验,一般只会使用70%的带宽,超过70%的流量,就会有网络丢包的可能性,所以该kafka服务器常规能够使用的是700Mb网络带宽。不过请注意,这是最大使用带宽,考虑到服务器部署还有其他的应用,要再预留出2/3的带宽(同样业界的保守预估,需要根据实际的使用情况进行减少),即kafka服务可以用带宽是 233Mbps。日志服务通常需要处理的日志很大,假设1小时1TB数据,要达到这个体量目标,每秒处理1024 * 1024 / 3600 大约是 291MB,也就是 2330Mb的数据,而一台服务器是233Mbps,需要10台服务器,尽量为一个主题配置3个副本,那么总服务器数30台。当然,可以把不同分区的leader分区混布,那样机器数会减少,但是对单台机器的网络带宽要求就会增加。

      好了,上述两个简单例子,就是对kafka上线从磁盘容量跟网络带宽资源上的总结,如果有更好的方案部署,欢迎交流。

 

 

0条评论
0 / 1000
wa***c
2文章数
0粉丝数
wa***c
2 文章 | 0 粉丝
wa***c
2文章数
0粉丝数
wa***c
2 文章 | 0 粉丝
原创

kafka上线部署容量评估

2023-07-26 12:31:44
47
0

       kafka是一种分布式,支持多分区、多副本,顺序持久性的消息系统,目前大量运用到各公司中业务中,解决各种削峰、解耦、缓冲、增加吞吐量的业务场景。 它具备的特性、运用场景以及设计思路,这里就不赘述了。今天在这里做个上线方案磁盘容量、带宽评估小总结,以及交流。

       线上kafka集群需要多少容量的磁盘呢?kafka将消息顺序持久化到磁盘,保存的时间可以配置,过期后会自动删除,需要结合自身业务实际场景来规划一个合理的磁盘空容量。下面我将举例一个小业务场景举例思考这个问题。

       资讯业务规划,每日有5万篇资讯,平均每篇2kb大小,复制保存三份(尽量为一个主题配置3个副本),考虑到资讯消息及时性特性,数据保留期限仅为三周时间,消息总容量为 5w * 2kb * 3  大概是 293Mb。kafka集群保存数据分区可以想象成表,其中除了保存消息数据,还有其他类型数据,比如索引数据,通常会预留出10%的冗余数据量,因此单日总容量大小为 322Mb。前面提到保留3周,即有效数据整体容量为 322Mb * 21 = 6.8Gb,这个容量对于一个线上业务来说是很小了。

       上述是计算总磁盘容量的方法。 kafka是一种依赖网络大量进行数据传输的分布式框架组件,带宽流量很容易成为瓶颈问题。 就以一般公司机器网络的配置1Gbps的千兆网络来举例。带宽资源的估算,可以说是对kafka服务器数量的估算。上述例子中,总容量不大,几乎可以忽略,完全可以跟其他业务共用集群,实际上线上业务大多数这么做,只是区分主题。

       下面以日志服务的例子说明下带宽资源的估算。现在很多业管跟中台之间有很多交互,其中日志查询也一种很常用的场景。千兆网卡的机器,即每秒处理1Gb的数据,业界往常使用的经验,一般只会使用70%的带宽,超过70%的流量,就会有网络丢包的可能性,所以该kafka服务器常规能够使用的是700Mb网络带宽。不过请注意,这是最大使用带宽,考虑到服务器部署还有其他的应用,要再预留出2/3的带宽(同样业界的保守预估,需要根据实际的使用情况进行减少),即kafka服务可以用带宽是 233Mbps。日志服务通常需要处理的日志很大,假设1小时1TB数据,要达到这个体量目标,每秒处理1024 * 1024 / 3600 大约是 291MB,也就是 2330Mb的数据,而一台服务器是233Mbps,需要10台服务器,尽量为一个主题配置3个副本,那么总服务器数30台。当然,可以把不同分区的leader分区混布,那样机器数会减少,但是对单台机器的网络带宽要求就会增加。

      好了,上述两个简单例子,就是对kafka上线从磁盘容量跟网络带宽资源上的总结,如果有更好的方案部署,欢迎交流。

 

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0