linux 增加一个管理员用户 Kafka笔记5(6)

电脑杂谈  发布时间:2019-02-10 03:05:48  来源:网络整理

预分配数据,构建ringbuffer,指定生产者类型(单生产者、多生产者)、消费者执行的线程池、生产者等待可发布数据空间和消费者等待可消费数据的策略。

与传统中间商一样,电子中间商起着连接生产者和消费者的桥梁作用,同样帮助消费者进行购买决策和满足需求,帮助生产者掌握产品销售状况,降低生产者为达成与消费者交易的成本费用。

市场经济下,生产者跟生产者竞争,消费者跟消费者竞争,而生产者从来不跟消费者竞争。

除了键值和偏移量外,消息还包含了消息大小,校验和,消息格式版本号,压缩算法和时间戳。

时间戳可以时生产者发送消息的时间,也可以是消息到达broker的时间,这个可以配置。

Kafka附带了一个叫做DumpLogSegment的工具,可以查看片段内容,显示每个消息的偏移量,校验和,魔术数字节,消息大小和压缩算法。

5.5.4索引

为了帮助broker更快定位到指定偏移量,Kafka为每个分区维护了一个索引。索引把偏移量映射到片段文件和偏移量在文件的位置。

5.5.5清理

Kafka通过改变主题的保留策略来满足这些场景(只关心最新的数据),早于保留时间的旧事件会被删除,为每个键保留最新值,只有当应用程序的事件里包含键值对时,为这些主题设置compact策略才有意义。

另外这样可能任务众多,如果线程池没有空闲线程怎么办,办法是将这些任务放入一个闲置队列,加入一个心跳(定时器)线程负责闲置任务的再次分配。

简单来说,队列就是用来存放任务的“暂存区”,而线程是执行任务的路径,gcd将这些存在于队列的任务取出来放到相应的线程上去执行,而队列的性质决定了在其中的任务在哪种线程上执行。

线程它允许一个进程执行一个或多个执行路径(即1个进程可以有多个线程,来执行不同的程序),这些执行路径由系统异步调度。

线程异步往往是通过创建多个线程执行多个任务,多个工作线同时开工,类似多辆在宽广的公路上并行的汽车同时前进,互不干扰(读者要明白,本质上并没有“同时”,仅仅是操作系统玩的一个障眼法。

5.5.7被删除的事件

如果为了把一个键从系统删除,应用程序必须发送一个包含该键且值为null的消息。清理线程发现该消息时,会先进行常规清理,只保留值为null的消息,如果消费者往复制Kafka数据,当看到这个消息时,就知道要把相关信息从里删除。过一段时间后,清理线程就会移除这个消息。键也会从Kafka消失。

5.5.8何时会清理主题

就像delete策略不删除当前活跃片段一样,compact策略也不会对当前片段进行清理,只有旧片段的消息才会被清理。Kafka会在包含脏记录的主题达到50%时进行清理。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-92089-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...