上一篇 <<<Rabbitmq环境安装
下一篇 >>>Kafka的设计原理介绍
Broker:kafka集群中包含的服务器节点
Topic:消息的类别。每条消息都属于某个topic,不同的topic之间是相互独立的,即kafka是面向topic的。
massage: Kafka中最基本的传递对象。
Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列,类似于redis里的卡槽。(一个Broker就是表示一个区域)
Segment:partition物理上由多个segment组成,每个Segment存着message信息
Producer : 生产者,向MQ投递消息
Consumer : 消费者,订阅topic并消费message, consumer作为一个线程来消费
Consumer Group:消费者组,对我们消费者实现分组,一个Consumer Group包含多个consumer
Offset:偏移量,理解为消息partition中的索引即可
controller:kafka集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。
zookeeper:kafka通过zookeeper来存储集群的meta信息。
replica:partition的副本,保障 partition 的高可用
leader:replica中的一个角色, producer和consumer只跟leader交互。
follower:replica中的一个角色,从leader中复制数据。
主题和队列队列有啥区别
队列是一个数据结构,遵循先进先出
主题没有规范
在rocketmq中主题是对队列做了一层封装
其他说明
Message是按照topic来组织的,每个topic可以分成多个partition(对应server.properties/num.partitions)。
partition是以文件的形式存储在文件系统中,位置由server.properties/log.dirs指定,其命名规则为<topic_name>-<partition_id>。
partition中的每条记录(message)包含三个属性:offset, messageSize和data。其中offset表示消息偏移量;messageSize表示消息的大小;data表示消息的具体内容。
partition可能位于不同的broker上,partition是分段的,每个段是一个segment文件。segment的常用配置有:
一个topic物理上分为多个partition,位于不同的broker上。如果没有 replica,一旦broker宕机,其上所有的patition将不可用。
每个partition可以有多个replica(对应server.properties/default.replication.factor),分配到不同的broker上
其中有一个leader负责读写,处理来自producer和consumer的请求;
其它作为follower从leader pull消息,保持与leader的同步。
在kafka中提出的Rebalance协议 有两种分配策略 Range\round-robin
推荐阅读:
<<<消息中间件的核心思想
<<<消息中间件常见问题汇总
<<<基于Netty简单手写消息中间件思路
<<<消息队列常用名词与中间件对比
<<<Rabbitmq基础知识
<<<Rabbitmq示例之点对点简单队列
<<<Rabbitmq示例之工作(公平)队列
<<<Rabbitmq示例之发布订阅模式
<<<Rabbitmq示例之路由模式Routing
<<<Rabbitmq示例之通配符模式Topics
<<<Rabbitmq示例之RPC模式
<<<Rabbitmq队列模式总结
<<<Rabbitmq如何保证消息不丢失
<<<Springboot利用AmqpTemplate整合Rabbitmq
<<<Rabbitmq如何保证幂等性
<<<Rabbitmq的重试策略
<<<Rabbitmq通过死信队列实现过期监听
<<<Rabbitmq解决分布式事务思路
<<<Rabbitmq解决分布式事务demo
<<<Rabbitmq环境安装
<<<Kafka的设计原理介绍
<<<Kafka集群如何实现相互感知
<<<Kafka如何实现分区及指定分区消费
<<<Kafka如何保证消息顺序消费
<<<Kafka如何保证高吞吐量
<<<Kafka集群环境搭建
<<<RocketMQ架构原理
<<<RocketMQ、RabbitMQ和Kafka的对比
<<<SpringBoot整合RocketMQ示例
<<<RocketMQ保证顺序消费demo
<<<RocketMQ如何动态扩容和缩容
<<<RocketMQ如何解决分布式事务
<<<RocketMQ单机版本安装
<<<RocketMQ集群环境程序启用相关知识点
<<<RocketMQ单机做主备实操
<<<RocketMQ所有配置说明