一、kafka的架构

1、Broker

kafka集群包含一个或者多个服务器,这种服务器就叫做Broker

2、Topic

每条发布到kafka集群的消息都有一个类别,这个类别就叫做Topic(逻辑上的概念,物理上不同的Topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或者多个broker上但是用户只需指定消息的Topic,即可生产或者消费数据而不必关心数据存储在何处)

3、Partition

Partition是物理上的概念,每个Topic对应一个或者多个Partition

4、Producer

负责将消息发送到kafka的broker服务器上

5、Consumer

消息消费者,向kafka broker读取消息的客户端

6、Consumer Group

high-level  consumer-API中,每个consumer都属于一个consumer group,每个consumer group会有多个consumer,但每个消息只能被consumer group的一个consumer消费,但可以被多个group 消费(可为每个Consumer指定consumer name,如果不指定则属于默认的group)

7、replica

partition 的副本,保障 partition 的高可用

8、leader

replica 中的一个角色, producer 和 consumer 只跟 leader 交互

9、follower

replica 中的一个角色,从 leader 中复制数据

10、controller

kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover

11、zookeeper

kafka 通过 zookeeper 来存储集群的 meta 信息

二、kafka的拓扑结构

一个典型的Kafka集群包含若干个producer(可以是web端产生的page view,或者是服务器日志,系统cpu,memery等),若干个broker(kafka支持水平发生扩展,一般broker数量越多,集群吞吐率越高),若干Consumer group,以及一个zookeeper集群,kafka通过zookeeper管理集群配置,选举leader,以及在consumer group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。

Kafka架构简介的更多相关文章

  1. 转 kafka架构简介

    kafka架构 转 http://www.cnblogs.com/chushiyaoyue/p/5612298.html 相关文章: https://www.jianshu.com/p/6233d53 ...

  2. Kafka:架构简介【转】

    转:http://www.cnblogs.com/f1194361820/p/6026313.html Kafka 架构简介 Kafka是一个开源的.分布式的.可分区的.可复制的基于日志提交的发布订阅 ...

  3. Kafka 探险 - 架构简介

    Kafka 探险 - 架构简介 这个 Kafka 的专题,我会从系统整体架构,设计到代码落地.和大家一起杠源码,学技巧,涨知识.希望大家持续关注一起见证成长! 我相信:技术的道路,十年如一日!十年磨一 ...

  4. kafka原理简介并且与RabbitMQ的选择

    kafka原理简介并且与RabbitMQ的选择 kafka原理简介,rabbitMQ介绍,大致说一下区别 Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和 ...

  5. 替代Flume——Kafka Connect简介

    我们知道过去对于Kafka的定义是分布式,分区化的,带备份机制的日志提交服务.也就是一个分布式的消息队列,这也是他最常见的用法.但是Kafka不止于此,打开最新的官网. 我们看到Kafka最新的定义是 ...

  6. 最简单流处理引擎——Kafka Streaming简介

    Kafka在0.10.0.0版本以前的定位是分布式,分区化的,带备份机制的日志提交服务.而kafka在这之前也没有提供数据处理的顾服务.大家的流处理计算主要是还是依赖于Storm,Spark Stre ...

  7. Kafka Connect简介

    Kafka Connect简介 http://colobu.com/2016/02/24/kafka-connect/#more Kafka 0.9+增加了一个新的特性Kafka Connect,可以 ...

  8. Kafka架构和原理深度剖析

    Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率. ...

  9. LoadRunner系统架构简介

    1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...

随机推荐

  1. 【CH6802】车的放置

    题目大意:给定一个 N*M 的棋盘,棋盘上有些点不能放置任何东西,现在在棋盘上放置一些车,问最多可以放置多少个车而不会互相攻击. 题解:将放置一个车看作连接一条无向边,因为每一行和每一列之间只能放置一 ...

  2. 题解-洛谷P1020P导弹拦截(求单调序列长度的优化)

    https://www.luogu.org/problemnew/show/P1020 (原题链接) 第一问就是求最长不上升子序列的长度,自然就想到了c++一本通里动态规划里O(n^2)的算法,但题目 ...

  3. quartz和spring集成使用一例子【我】

    首先在spring配置文件中增加: <!-- 调度器 --> <bean name="scheduler" lazy-init="false" ...

  4. JMeter-Java压力测试工具-01

    先去官网下载 打开 下面测试一个小栗子 建立一个工程,提供一个查询接口 package com.example.demo; import org.springframework.web.bind.an ...

  5. Gym 101911E "Painting the Fence"(线段树区间更新+双端队列)

    传送门 题意: 庭院中有 n 个围栏,每个围栏上都被涂上了不同的颜色(数字表示): 有 m 条指令,每条指令给出一个整数 x ,你要做的就是将区间[ x第一次出现的位置 , x最后出现的位置 ]中的围 ...

  6. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:co

    在pom中加入下面代码: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId&g ...

  7. 流畅的python--python数据模型

    python最好的品质之一就是一致性.初步接触python可能会len(collection)而不是collection.len()觉得不适应,这是通常所说的“python风格”(Pythonic)的 ...

  8. Java多线程常用面试题(含答案,精心总结整理)

    现在有T1.T2.T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 目的是检测你对”join”方法是否熟悉.这个多线程问题比较简单,可以用join方法实现. 核心: threa ...

  9. Go多组Raft库

    Go多组Raft库 https://github.com/lni/dragonboat/blob/master/README.CHS.md 使用用例 https://github.com/lni/dr ...

  10. PubMed数据下载

    目标站点分析 目标:抓取页面中的机构名称,日期,标题,作者, 作者信息, 摘要 程序实现 # -*- coding: utf-8 -*- """ @Datetime: 2 ...