【kafka】在linux中安装并简单部署使用

简介

分布式流处理平台:发布订阅消息队列、具有存储功能、一个流处理框架

优势

  1. 吞吐量好,性能好
  2. 伸缩性好,支持在线扩展
  3. 容错性和可靠性(容错性:一个消息存储三份 )
  4. 与大数据生态紧密结合,可无缝对接hadoop、strom、spark等

消息模型

JMS规范

进局限于java

队列:点对点;

主题:发布订阅

常见的:Apache ActiveMQ

AMQP模型

是一个协议,通常协议可以跨语言

三大实体:队列、信箱、绑定

消息先放在信箱里面,根据绑定的路由规则,再将消息放到队列里面,供消费者消费

特点:支持事务,数据一致性高,对性能要求不高

典型的消息中间件:Pivotal RabbitMQ

MQTT

基本概念

Topic主题

消息存在在主题中。

类似于数据库中的表,通常相同类型的消息存在同一个主题中,topic属于半结构化的数据,因此不同类型的消息也可以存储在一个主题中。

Partition分区

一个主题存在多个分区。不同的分区存在不同的服务器上

分区使得kafka具有了拓展性。

分区是一个线性增长的不可变的提交日志

偏移量

消息存储到分区之后,消息就不可变更,kafka会给每条消息分配一个偏移量。

偏移量用于记录每条消息的位置。

kafka可以通过偏移量来对消息进行提取,但是无法检索和查询消息内容

偏移量唯一不可重复,依次递增。

Record消息记录

以键值对的形式存储。如果不指定key,则key值为空。

如果key值为空,kafka将以轮询的方式,将消息存到不同的分区中

如果指定了key,则相同key的消息会被写到同一个分区

副本

避免数据丢失。

通过设置replication-factor=n (副类因子,包括主分区在内,一共有n个副本)来规定副本数量。

主分区又称为:leader。所有数据的写入、读取都是leader中

Broker消息代理

Kafka集群是由多个消息代理组成的

负责消息的读写请求,并将数据写入磁盘中。

通常每个服务器上启动一个broker

下载

  1. 下载kafka scala安装包 Apache Kafka

  2. 放到本地虚拟机中,然后进行解压缩 tar -xzvf kafka_2.13-3.5.1.tgz

    bin目录:kafka操作的一些shell脚本

    config目录:配置文件

    libs目录:依赖包

    site-docs:说明文档

本地伪分布式安装

配置

kafka依赖zookeeper(新版本的kafka不再依赖zookeeper)

  1. 将zookeeper配置文件复制到etc文件夹下 cp config/zookeeper.properties

    zookeeper文件内容:

    dataDir :日志内容

    clientPort:端口

  2. 搭建伪分布式节点(此处搭建三个节点)

  3. 复制config中的server文件并重命名 搭建几个节点复制几个 cp config/server.properties etc/server-0.properties

    server 文件用于配置kafkapok 的配置文件

  4. 进入etc目录,更改配置文件内容

    将 listeners=PLAINTEXT://:9092之前的注释去掉;

    log-dirs、broker.id 进行区分

    节点的端口不能一样

    必要配置项:broker.id、log-dirs、listeners(监听器)

    监听器:指定broker启动时本机的监听名称、端口

    😕/9092 默认协议:PLAINTEXT

    😕/192.168.1.10:9092 默认协议:SSL 前两种效果一致

    😕/hostname:9092 默认协议:SASL_PLAINTEXT

    😕/0.0.0.0:9092 默认协议:SASL_SSL 适用于多网卡的情况,监听所有的9092端口

    advertised.listeners:对外发布的访问IP和端口,注册到zookeeper中,给客户端使用。默认与监听器配置相同

启动伪分布式集群

启动命令在bin目录下 start命令 配置文件

  1. 使用start命令 zookeeper配置文件 启动zookeeper

    ./zookeeper-server-start.sh ../etc/zookeeper.properties

  2. 启动kafka实例

    ./kafka-server-start.sh ../etc/server-0.properties

创建主题

进入bin目录

可通过 ./kafka-topics.sh查看参数 描述中带有 REQUIRED的表示必带

常用参数备注
–create创建主题
–topic主题名
–describe主题描述
–list查看主题列表
–delete删除主题
–alter修改主题
–bootstrap-server必带(老版kafka必配置的是 --zookeeper)
–partitions分区数量
–replication-factor副本数

创建一个主题名为test1 分区数量为3 副本数为2的主题

./kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test1 --partitions 3 --replication-factor 2

查看分区状态 ./kafka-topics.sh --bootstrap-server localhost:9092 --topic test1 --describe

消费者

./kafka-console-consumer.sh

0.11 版本之前消费者的消费位置放在zookeeper,之后的放在kafka的主题中消费

将消费者加入主题中 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 localhost:9093 localhost:9094 --topic test1

如果想从头消费 加上 --frombegin 参数

生产者

./kafka-console-producer.sh --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test1

进入消息发送窗口

消息从窗口发出后,消费者就可以接收到相应的信息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值