kafka的核心介绍和安装部署

5 篇文章 0 订阅
2 篇文章 0 订阅

分布式流处理平台kafka核心概念解释

Broker

Kafka的服务端程序,可以认为一个mq节点就是一个broker
broker存储topic的数据

Producer生产者

创建消息Message,然后发布到MQ中
该角色将消息发布到Kafka的topic中

Consumer消费者:

消费队列里面的消息

ConsumerGroup消费者组

同个topic, 广播发送给不同的group,一个group中只有一个consumer可以消费此消息

Topic

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic,主题的意思

Partition分区

kafka数据存储的基本单元,topic中的数据分割为一个或多个partition,
每个topic至少有一个partition,是有序的
一个Topic的多个partitions, 被分布在kafka集群中的多个server上 
消费者数量 <=小于或者等于Partition数量

Replication 副本(备胎)

同个Partition会有多个副本replication ,多个副本的数据是一样的,当其他broker挂掉后,系统可以主动用副本提供服务
默认每个topic的副本都是1(默认是没有副本,节省资源),也可以在创建topic的时候指定
如果当前kafka集群只有3个broker节点,则replication-factor最大就是3了,如果创建副本为4,则会报错

ReplicationLeader、ReplicationFollower

Partition有多个副本,但只有一个replicationLeader负责该Partition和生产者消费者交互
ReplicationFollower只是做一个备份,从replicationLeader进行同步

ReplicationManager

负责Broker所有分区副本信息,Replication 副本状态切换

offset

每个consumer实例需要为他消费的partition维护一个记录自己消费到哪里的偏移offset
kafka把offset保存在消费端的消费者组里

特点总结

多订阅者

一个topic可以有一个或者多个订阅者
每个订阅者都要有一个partition,所以订阅者数量要少于等于partition数量
高吞吐量、低延迟: 每秒可以处理几十万条消息

高并发:

	几千个客户端同时读写

容错性:

 多副本、多分区,允许集群中节点失败,如果副本数据量为n,则可以n-1个节点失败

扩展性强:

支持热扩展

基于消费者组可以实现:

基于队列的模型:

所有消费者都在同一消费者组里,每条消息只会被一个消费者处理

基于发布订阅模型:

消费者属于不同的消费者组,假如每个消费者都有自己的消费者组,这样kafka消息就能    广播到所有消费者实例上

环境准备

安装kafka 需要准备

CentOS 7 以上版本,64位系统

jdk1.8 以上版本

 链接:https://pan.baidu.com/s/1m-AcyFLbf8zZzNkMejfOMg 
 提取码:vjmk

zookeeper

链接:https://pan.baidu.com/s/1LozGxWSTrQ57mBbtzIN47g 
提取码:ryjp

kafka

链接:https://pan.baidu.com/s/1xtQHlfUQy0csvzAtEvUvHA 
提取码:72yt

jdk 安装

将tar文件上传到linux 服务器
tar -zxvf 解压
配置环境变量
vim /etc/profile

JAVA_HOME=/usr/local/software/jdk1.8
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

环境变量立刻生效
source /etc/profile

安装zookeeper(默认2181端口)

将tar文件上传到服务器
tar -zxvf 解压
mv 重命名
进入 zookeeper的conf文件夹 复制 zoo_sample.cfg 为 zoo.cfg
zookeeper 默认启动配置是这个zoo.cfg
在这里插入图片描述
s在这里插入图片描述
可以修改这个文件夹路径 就是zookeeper 数据的存放路径

在这里插入图片描述
启动zookeeper

安装Kafka (默认 9092端口)

将tar 放入到服务器
tar -zxvf 解压
修改config目录下的server.properties

标识broker编号,集群中有多个broker,则每个broker的编号需要设置不同
broker.id=0
​
#修改下面两个配置 ( listeners 配置的ip和advertised.listeners相同时启动kafka会报错)
listeners(内网Ip)
advertised.listeners(公网ip)

#修改zk地址,默认地址
zookeeper.connection=localhost:2181

bin目录启动

#启动
./kafka-server-start.sh  ../config/server.properties &
​
#停止
kafka-server-stop.sh

创建topic

./kafka-topics.sh --create --zookeeper {你的公网Id}:2181 --replication-factor 1 --partitions 1 --topic xdclass-topic

查看topic

./kafka-topics.sh --list --zookeeper {你的公网Id}:2181
守护线程启动
./kafka-server-start.sh -daemon ../config/server.properties &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挚爱妲己~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值