kafka
文章平均质量分 84
fFee-ops
it's tough.
展开
-
kafka顺序消息
场景概述假设我们要传输一批订单到另一个系统,那么订单对应状态的演变是有顺序性要求的。已下单 → 已支付 → 已确认不允许错乱!顺序级别1)全局有序:串行化。每条经过kafka的消息必须严格保障有序性。这就要求kafka单通道,每个groupid下单消费者极大的影响性能,现实业务下几乎没必要。2)局部有序:业务局部有序。同一条订单有序即可,不同订单可以并行处理。不同订单的顺序前后无所谓。充分利用kafka多分区的并发性,只需要想办法让需要顺序的一批数据进同一分区即可。(和RocketMQ的解原创 2022-02-13 12:51:21 · 2112 阅读 · 0 评论 -
kafka底层架构
1. 存储架构1.1 分段存储kafka每个主题可以有多个分区,每个分区在它所在的broker上创建一个文件夹。每个分区又分为多个段,每个段有两个文件,log文件里顺序存消息,index文件里存消息的索引。段的命名直接以当前段的第一条消息的offset为名。注意是偏移量,不是序号! 第几条消息 = 偏移量 + 1。类似数组长度和下标。所以offset从0开始(可以开新队列新groupid消费第一条消息打印offset得到验证)例如:1.2 日志索引每个log文件配备一个索引文件 *原创 2022-02-12 22:51:31 · 1711 阅读 · 0 评论 -
Springboot整合kafka
1. 整合kafka1、引入依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>2、设置yml文件spring: application: name: demo原创 2022-02-09 13:51:25 · 35436 阅读 · 5 评论 -
kafka架构探索及安装
1. 发展历程https://kafka.apache.org/downloads1.1 版本命名Kafka在1.0.0版本前的命名规则是4位,比如0.8.2.1,0.8是大版本号,2是小版本号,1表示打过1个补丁。现在的版本号命名规则是3位,格式是“大版本号”+“小版本号”+“修订补丁数”,比如2.5.0,前面的2代表的是大版本号,中间的5代表的是小版本号,0表示没有打过补丁。我们所看到的下载包,前面是scala编译器的版本,后面才是真正的kafka版本。比如1.2 演进历史0.7版本原创 2022-02-05 18:28:27 · 1066 阅读 · 0 评论 -
kafka基础组件
角色broker:节点,就是你看到的机器,也就是一个kafka服务provider:生产者,发消息的consumer:消费者,读消息的zookeeper:信息/注册中心,记录kafka的各种信息的地方controller:其中的一个broker,作为leader身份来负责管理整个集群。如果挂掉,借助zk重新选主。逻辑组件上图中topic1有三个partition,每个partition有3个副本。注意:三个其实都是副本,只不过有leadr、follower的区别。topic:主原创 2022-02-05 12:03:29 · 2539 阅读 · 0 评论 -
kafka简介
1. 应用场景1.1 kafka场景Kafka最初是由LinkedIn公司采用Scala语言开发,基于ZooKeeper,现在已经捐献给了Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以 高吞吐、可持久化、可水平扩展、支持流处理等多种特性而被广泛应用。Apache Kafka能够支撑海量数据的数据传递。在离线和实时的消息处理业务系统中,Kafka都有广泛的应用。(1)日志收集:收集各种服务的log,通过kafka以统一接口服务的方式开放 给各种consumer,例如Hado原创 2022-02-04 12:15:57 · 182 阅读 · 0 评论