kafka消息的处理机制(五)】的更多相关文章

这一篇我们不在是探讨kafka的使用,前面几篇基本讲解了工作中的使用方式,基本api的使用还需要更深入的去钻研,多使用才会有提高.今天主要是探讨一下kafka的消息复制以及消息处理机制. 1. broker的注册 Kafka使用Zookeeper来维护集群成员的信息.每个broker都有一个唯一标识符,这个标识符可以在配置文件里指定,也可以自动生成.在kafka启动的时候,他通过创建临节点把自己的id注册到zk,kafka组件订阅zk的/broker/ids路径(broker在zk上的注册路径)…
最近在做 AWS cost saving 的事情,对于 Kafka 消息集群,计划通过压缩消息来减少消息存储所占空间,从而达到减少 cost 的目的.本文将结合源码从 Kafka 支持的消息压缩类型.何时需要压缩.如何开启压缩.何处进行解压缩以及压缩原理来总结 Kafka 整个消息压缩机制.文中所涉及源码部分均来自于 Kafka 当前最新的 3.3.0-SNAPSHOT 版本. Kafka支持的消息压缩类型 什么是 Kafka 的消息压缩 在谈消息压缩类型之前,我们先看下 Kafka 中关于消息…
我写了另一篇zookeeper选举机制的,可以参考:zookeeper 负载均衡 核心机制 包含ZAB协议(滴滴,阿里面试) 一.zookeeper 与kafka保持数据一致性的不同点: (1)zookeeper使用了ZAB(Zookeeper Atomic Broadcast)协议,保证了leader,follower的一致性,leader 负责数据的读写,而follower只负责数据的读,如果follower遇到写操作,会提交到leader; 当leader宕机的话,使用 Fast Lead…
1.前言 本文的上篇<IM消息送达保证机制实现(一):保证在线实时消息的可靠投递>中,我们讨论了在线实时消息的投递可以通过应用层的确认.发送方的超时重传.接收方的去重等手段来保证业务层面消息的不丢不重. 但实时在线投递针对的是消息收发双方都在线的情况(如当发送方用户A发送消息给接收方用户B时,用户B是在线的),那如果消息的接收方用户B不在线,系统是如何保证消息的可达性的呢?这就是本文要讨论的问题.(本文同步发布于:http://www.52im.net/thread-594-1-1.html)…
项目开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架中消息队列的设计思路,本文介绍一下enode框架中关系消息的重试机制的设计思路. 对于一个EDA架构为基础的框架,核心就是消息驱动,然后基于最终一致性的原则.所以,非常重要的一点是,如果消息一次执行不成功,那该怎么办?我能想到的对策就是消息的重试.我发现,这篇文章比较难写,因为感觉要把复杂的事情清晰的表达出来,感觉确实不容易.说到重试,那什么是消息的重试呢?怎么重试呢?我这里…
Kafka文件的存储机制 同一个topic下有多个不同的partition,每个partition为一个目录,partition命名的规则是topic的名称加上一个序号,序号从0开始. 每一个partition目录下的文件被平均切割成大小相等(默认一个文件是500兆,可以手动去设置)的数据文件,每一个数据文件都被称为一个段(segment file),但每个段消息数量不一定相等,这种特性能够使得老的segment可以被快速清除.默认保留7天的数据. 每个partition下都会有这些每500兆一…
消息的存储原理: 消息的文件存储机制: 前面我们知道了一个 topic 的多个 partition 在物理磁盘上的保存路径,那么我们再来分析日志的存储方式.通过 [root@localhost ~]# ls /tmp/kafka-logs/firstTopic-1/命令找到对应 partition 下的日志内容:       00000000000000000000.index 00000000000000000000.log        00000000000000000000.timein…
关于 Topic 和 Partition: Topic: 在 kafka 中,topic 是一个存储消息的逻辑概念,可以认为是一个消息集合.每条消息发送到 kafka 集群的消息都有一个类别.物理上来说,不同的 topic 的消息是分开存储的,每个 topic 可以有多个生产者向它发送消息,也可以有多个消费者去消费其中的消息. Partition: 每个 topic 可以划分多个分区(每个 Topic 至少有一个分区),同一 topic 下的不同分区包含的消息是不同的.每个消息在被添加到分区时,…
系列目录 kafka原理和实践(一)原理:10分钟入门 kafka原理和实践(二)spring-kafka简单实践 kafka原理和实践(三)spring-kafka生产者源码 kafka原理和实践(四)spring-kafka消费者源码 kafka原理和实践(五)spring-kafka配置详解 kafka原理和实践(六)总结升华 一.官方配置 官方配置文档飞机票建议看Importance=medium以上的,即重要性为中级以上的,其他的用到了再说. 二.实践中的配置 properties配置…
基本可用软状态最终一致事务 本用例分两个数据库分别是用户库和交易库,不使用分布式事务,使用基于消息驱动实现基本可用软状态最终一致事务(BASE).现在说明下事务逻辑演化步骤,尊从CAP原则,即分布式系统不能全部确保一致性.可用性.分区容错性,只能三选二.文章里从一致性模式讨论,例子里每次出售物品时,将一行添加到交易表中,并更新买方和卖方的数量. 使用ACID风格的事务这是强一致性事务,SQL将如图所示.…