• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >Linux > Kafka入门初探+伪集群部署

Kafka入门初探+伪集群部署

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含kafka集群,kafka集群安装,kafka集群搭建,kafka集群配置,kafka集群部署等服务器相关知识,网友希望可以进行参考

Kafka入门初探+伪集群部署


Kafka是目前非常流行的消息队列中间件,常用于做普通的消息队列、网站的活性数据分析(PV、流量、点击量等)、日志的搜集(对接大数据存储引擎做离线分析)。

全部内容来自网络,可信度有待考证!如有问题,还请及时指正。

概念介绍

在Kafka中消息队列分为三种角色:

  • producer,即生产者,负责产生日志数据。
  • broker,存储节点,负责按照topic中的partition分区,均匀分布式的存储分区。
  • consumer,即消费者,负责读取使用broker中的分区。

producer

Kafka系统中的生产者,用于产生数据并发送给broker进行存储。由于需要与broker中的分区保持socket连接,因此需要在zk中维护生产者与分区broker的对应关系。同一个topic下的数据,会以某种负载均衡的方式发送到不同的分区中。

broker

Broker可以当做Kafka中的存储节点,数据按照topic组织,按照某种负载均衡方式分配到不同的分区中。一个Topic由多个分区组成,每个分区可以设置备份数量。分区由一个leader+多个followers组成,生产者直接与leader进行沟通,leader接收消息后,其他的followers会同步这个消息。所有的follwers同步消息后,该消息才会成为可消费的状态。

Broker中Topic与分区,分区与生产者,分区之间的选举备份等等信息都需要ZK进行协调。

consumer

Consumer是Kafka中的消费者,通常以组的形式存在,一个Group会包含多个Consumer。每个组对应一个Topic,该Topic内的分区只能对应一个消费者,也就是如果消费者很多的情况下,会出现有的消费者消费不到数据;如果消费者很少的情况下,会有消费者同时消费多个分区的数据。

Kafka仅仅会保证一个分区的消息的消费是有序的,多个分区并不保证有序性。

为了保证数据消费的可靠性,Kakka提供了几种消费的机制:

  • 1 at most once,即消费数据后,保存offset,就再也取不到这个数据了。
  • 2 at least once,即消费数据后,保存offset,如果保存出错,下次可能还会取到该数据
  • 3 exactly once,待查阅

在Kafka中offset是由consumer维护的(实际可以由zk来完成)。这种机制有两个好处,

  • 一个是可以依据consumer的能力来消费数据,避免产生消费数据的压力;
  • 另一个就是可以自定义fetch消费的数据数目,可以一次读取1条,也可以1次读取100条。

topic

Kafka中的数据的主题,所有的操作(如消息的存储和读取\消费)都是依据topic完成。

partition

每个Topic由多个分区组成,每个分区内部的数据保证了有序性,即是按照时间序列,append到分区的尾部。分区是有固定大小的,容量不够时,会创建新的分区。Kafka在一定时间内会定期清理过期的文件。

这种连续性的文件存储,一方面有效的利用磁盘的线性存取;另一方面减轻了内存的压力。

zookeeper

在Kafka中很多节点的调度以及资源的分配,都要依赖于zookeeper来完成。
如:

  • 1 Broker的注册,保存Broker的IP以及端口;
  • 2 Topic注册,管理broker中Topic的分区以及分布情况
  • 3 Broker的负载均衡,讲Topic动态的分配到broker中,通过topic的分布以及broker的负载判断
  • 4 消费者,每个分区的消息仅发送给一个消费者(不知道跟zookeeper有啥关系)
  • 5 消费者与分区的对应关系,存储在zk中
  • 6 消费者负载均衡,一旦消费者增加或者减少,都会触发消费者的负载均衡
  • 7 消费者的offset,High level中由zk维护offset的信息;Low Level中由自己维护offset

伪集群环境的搭建

部署伪集群环境,即单节点环境非常简单。下载部署文件,解压后,直接运行即可。

运行命令如下:

# 启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties &  

# 启动kafka
bin/kafka-server-start.sh config/server.properties &  

如果想要测试,可以启动测试程序:

# 启动生产者测试程序
./kafka-console-producer.sh --broker-list localhost:9092 --topic test

# 启动消费者测试程序
./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

在生产者界面输入的内容,就可以直接在消费者界面中看到了。

分布式发布订阅消息系统 Kafka 架构设计

Apache Kafka 代码实例

Apache Kafka 教程笔记

Apache kafka原理与特性(0.8V) 

Kafka部署与代码实例 

Kafka介绍和集群环境搭建 

本文永久更新链接地址:

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Kafka入门初探+伪集群部署

相关文章

  • Ubuntu 14.04 配置vsftpd实现FTP服务器 - 通过FTP连接AWS
  • centos7 mariadb主从复制配置搭建
  • CentOS服务器系统下更改Apache默认网站目录
  • 详解Nginx轮询算法底层实现的方法
  • CentOS7安装MySQL5.6.28及其修改密码
  • CentOS 6.8安装Zabbix3.2
  • Centos7搭建Docker私有库
  • centos7搭建DHCP简要服务器
  • ubuntu修改terminal终端的主机名的实现方法
  • centos7下lamp快速搭建环境

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • linux下修改mysql密码
    • Centos7下安装apache过程总结
    • 解决linux环境下时区无法设置的问题
    • CentOS7 安装Mysql5.7(解压缩版)
    • CentOS服务器系统下更改Apache默认网站目录
    • Linux下NFS搭建步骤
    • Linux系统(CentOS7安装)安装JDK8的教程详解
    • centos7下快速安装mysql
    • 利用Openfiler配置基于文件系统的网络存储
    • ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有