文章插图
kafka快速实战与基本原理详解背景Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协 调的分布式消息系统,它的最大的特性就是可以实时地处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统 统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写, Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目 。
Kafka基本概念kafka是一个分布式的,分区的消息(官方称之为commit log)服务 。它提供一个消息系统应该具备的功能,但是确有着独特的设计 。可以这样来说,Kafka借鉴了JMS规范的思想,但是确并没有完全遵循JMS规范 。
首先,让我们来看一下基础的消息(Message)相关术语
名称解释Broker消息中间件处理节点,一个Kafka节点就是一个broker,一个或者多个Broker可以组成一个Kafka集群TopicKafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topicProducer消息生产者,向Broker发送消息的客户端Consumer消息消费者,从Broker读取消息的客户端ConsumerGroup每个Consumer属于一个特定的Consumer Group,一条消息可以被多个不同的Consumer Group消费,但是一个Consumer Group中只能有一个Consumer能够消费该消息Partition物理上的概念,一个topic可以分为多个partition,每个partition内部消息是有序的因此,从一个较高的层面上来看,producer通过网络发送消息到Kafka集群,然后consumer来进行消费,如下图:
服务端(brokers)和客户端(producer、consumer)之间通信通过TCP协议来完成.
kafka基本使用安装前的环境准备由于Kafka是用Scala语言开发的,运行在JVM上,因此在安装Kafka之前需要先安装JDK 。
yum install java-1.8.0-openjdk* -y
kafka依赖zookeeper,所以需要先安装zookeeper
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
cd apache-zookeeper-3.5.8-bin
cp conf/zoo_sample.cfg conf/zoo.cfg # 启动zookeeper bin/zkServer.sh
start bin/zkCli.sh
ls / #查看zk的根目录相关节点
第一步:下载安装包
下载2.4.1 release版本,并解压:
wgethttps://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.11-2.4.1.tgz # 2.11是scala的版本,2.4.1是kafka的版本
tar -xzf kafka_2.11-2.4.1.tgz
cd kafka_2.11-2.4.1
第二步:修改配置
修改配置文件config/server.properties:
#broker.id属性在kafka集群中必须要是唯一 broker.id=0 #kafka部署的机器ip和提供服务的端口号 listeners=PLAINTEXT://192.168.65.60:9092 #kafka的消息存储文件 log.dir=/usr/local/data/kafka-logs #kafka连接zookeeper的地址 zookeeper.connect=192.168.65.60:2181
第三步:启动服务现在来启动kafka服务:
启动脚本语法:kafka-server-start.sh [-daemon] server.properties
可以看到,server.properties的配置路径是一个强制的参数,-daemon表示以后台进程运行,否则ssh客户端退出后,就会停止服务 。(注意,在启动kafka时会使用linux主机名关联的ip地址,所以需要把主机名和linux的ip映射配置到本地host里,用vim /etc/hosts)
# 启动kafka,运行日志在logs目录的server.log文件里
bin/kafka-server-start.sh -daemon config/server.properties
#后台启动,不会打印日志到控制台 或者用
bin/kafka-server-start.sh config/server.properties & # 我们进入zookeeper目录通过zookeeper客户端查看下zookeeper的目录树 bin/zkCli.sh ls / #查看zk的根目录kafka相关节点
ls /brokers/ids #查看kafka节点 # 停止kafka bin/kafka-server-stop.sh
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 一般的玉手镯卖多少钱:翡翠项链编织绳,好的项链要配独一无二的绳子
- 一般的玉手镯卖多少钱:翡翠项链鉴定机构,专业的就是让人信赖
- 2022年天猫年货节红包入口在哪里 天猫年货节红包口令怎么设置的
- 2022大连泉水疫情源头在哪 大连疫情活动轨迹是怎样的
- 苏打水是碳酸饮料吗
- 文玩核桃怎么清洗
- 坐飞机的流程步骤有哪些?
- 原唱者王琪携手许歌淳主演院线电影 可可托海的牧羊人原唱
- 镜子是用什么材料做的
- 筋膜枪怎么使用