全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 就业前景 > 软件开发 > > ApacheKafka开源消息系统_kafka源码分析(apachekafka源码剖析)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

ApacheKafka开源消息系统_kafka源码分析(apachekafka源码剖析)

发布时间:4 周 前 栏目:软件开发 浏览:

1、ApacheKafka开源消息系统_kafka源码分析

消息中间价,首选Kafka,大厂开源,稳定更新,性能优越,顺便介绍kafka的相关知识。

一、kafka是什么?

ApacheKafka是一套开源的消息系统,它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式,分区化,可复制的提交日志服务。现在,LinkedIn公司有三个同事离职创业,继续开发kafka。

二、关键配置项解读

出于性能和实际集群部署情况,我们还是需要讲解一些重要的配置项。除此之外,如果对某个默认参数存在质疑,在详细了解改参数的作用前,建议采用默认配置。

advertised.host.name

注册到zk供用户使用的主机名。内网环境通常无需配置,而IaaS一般需要配置为公网地址。默认为“host.name”,可以通过java.net.InetAddress.()接口获取该值。

advertised.port

注册到zk供用户使用的服务端口,通常在IaaS环境需要额外配置。

num.partitions

自动创建topic的默认partition数量。默认是1,为了获得更好的性能,建议修改为更大。最优取值参考后文。

default.replication.factor

自动创建topic的默认副本数量,官方建议修改为2;但通常一个副本就足够了。

min.insync.replicas

ISR提交生成者请求的最小副本数。

unclean.leader.election.enable

是否允许不具备ISR资格的replicas选举为leader作为不得已的措施,甚至不惜牺牲部分数据。默认允许。建议允许。数据异常重要的情况例外。

controlled.shutdown.enable

在kafka收到stop命令或者异常终止时,允许自动同步数据。建议开启。

三、调优考量

配置合适的partitons数量。

这似乎是kafka新手必问得问题。partiton是kafka的并行单元。从procer和broker的视角看,向不同的partition写入是完全并行的;而对于consumer,并发数完全取决于partition的数量,即,如果consumer数量大于partition数量,则必有consumer闲置。所以,我们可以认为kafka的吞吐与partition时线性关系。partition的数量要根据吞吐来推断,假定p代表生产者写入单个partition的最大吞吐,c代表消费者从单个partition消费的最大吞吐,我们的目标吞吐是t,那么partition的数量应该是t/p和t/c中较大的那一个。实际情况中,p的影响因素有批处理的规模,压缩算法,确认机制和副本数等,然而,多次benchmark的结果表明,单个partition的最大写入吞吐在10MB/sec左右;c的影响因素是逻辑算法,需要在不同场景下实测得出。

这个结论似乎太书生气和不实用。我们通常建议partition的数量一定要大于等于消费者的数量来实现最大并发。官方曾测试过1万个partition的情况,所以不需要太担心partition过多的问题。我建议的做法是,如果是3个broker的集群,有5个消费者,那么建议partition的数量是15,也就是broker和consumer数量的最小公倍数。当然,也可以是一个大于消费者的broker数量的倍数,比如6或者9,还请读者自行根据实际环境裁定。

ApacheKafka开源消息系统_kafka源码分析

2、【重新问】很少有机会和喜欢的女孩见面,该怎样和她沟通?

我和自己喜欢的女孩不能经常见面,近2个月她也基本不上Q

所以上来求教大家,恳请各位给我些在这种情况下和女孩的沟通技巧(如果发短信和她自然联系的话,我不知道该说些什么好。主要不想让她感受到我追她的压力,让她觉得自然、轻松)

PS:我和她是属于比较好的朋友,一年前我向她表白过,被拒绝了,不过我们还是保持着朋友关系

还有就是:如果在女方把我当朋友的前提下,我如果一段时间没有和她联系(大概20天左右),那她会以为我把她忘了吗?这种情况下女方会有这种心态吗?

求教 谢谢

ApacheKafka开源消息系统_kafka源码分析

3、kafka与Flink集成问题记录

Kafka库与Flink的反向类加载方法不兼容,修改 conf/flink-conf.yaml 并重启Flink

4、springboot+kafka+elk 启动报 java.lang.NoSuchMethodError怎么解决?

Exception in thread "AsyncAppender-Worker-kafkaAppenderAsync" java.lang.NoSuchMethodError: org.apache.kafka.clients.producer.ProducerRecord.(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Object;Ljava/lang/Object;)V

at com.github.danielwegener.logback.kafka.KafkaAppender.append(KafkaAppender.java:124)

at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)

at com.github.danielwegener.logback.kafka.KafkaAppender.doAppend(KafkaAppender.java:51)

at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)

at ch.qos.logback.core.AsyncAppenderBase$Worker.run(AsyncAppenderBase.java:290)

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号