1+X之Kafka集群部署


一、Kafka简介

1、Kafka概念

Apache Kafka是一个分布式的基于push-subscribe的消息系统,它具备快速、可扩展、可持久化的特点。它现在是Apache旗下的一个开源系统,作为Hadoop生态系统的一部分,被各种商业公司广泛应用。它的最大的特性就是可以实时地处理大量数据以满足各种需求场景。比如基于Hadoop的批处理系统、低延迟的实时系统、Storm或Spark流式处理引擎。

2、Kafka架构组件

  • topic:消息存放的目录即主题(发布订阅的对象)。
  • Producer:生产消息到topic的一方。
  • Consumer:订阅topic消费消息的一方。
  • Broker:Kafka的服务实例就是一个broker。

3、Kafka的优点

  • Kafka支持多个生产者和消费者;
  • Kafka支持broker的横向扩展;
  • Kafka副本集机制,能实现数据冗余,保障数据尽量不丢失;
  • 通过topic将不同的消息进行分类(几乎所有的MQ都有);
  • 通过分批发送压缩的方式,减少网络数据传输开销,提升数据吞吐量;
  • 支持多种模式的消息(schema);
  • 可基于磁盘实现数据持久化;
  • 高性能处理消息,在处理大量数据的情况下,能保证亚秒级的消息延迟;
  • 一个消费者支持多个主题的消费;
  • 对CPU和内存消耗较小;
  • 对网络开销相对较小;
  • 支持跨数据中心的消息复制;
  • 支持镜像集群。

4、Kafka的应用场景

  • 日志收集
  • 消息系统:解耦、生产者、消费者和缓存消息等。
  • 用户活动跟踪
  • 运营指标
  • 流式处理

二、kafka集群部署

1、节点规划

ip主机名
192.168.200.11zookeeper1
192.168.200.12zookeeper2
192.168.200.13zookeeper3

2、解压Kafka软件包

下载路径:

http://kafka.apache.org/downloads 

(这里用到的Kafka版本为kafka_2.11-1.1.1)
上传Kafka压缩包至/root目录下并解压(三个主机)

3、修改3个节点配置文件

(1) zookeeper1:
进入kafka_2.11-1.1.1/config目录下,编辑server.properties文件
在配置文件中找到如下两行,并注释掉(即在文本前加#),如下所示:

#broker.id=0
#zookerper.connect=localhost:2182

然后在配置文件的底部添加如下3个配置:

broker.id=1
zookeeper.connect=192.168.200.11,192.168.200.12,192.168.200.13:2181
listeners=PLAINTEXT://192.168.200.11:9092

命令解析:

  • broker.id:每台机器不能一样。
  • zookeeper.connect:因为有3台ZooKeeper服务器,所以在这里zookeeper.connect设置为3台。
  • listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误。
    另外两台服务器,zookeeper.connect的配置跟这里的一样,但是broker.id和listeners不能一样。
    (2)zookeeper2节点:
broker.id=2
zookeeper.connect=192.168.200.11,192.168.200.12,192.168.200.13:2181
listeners=PLAINTEXT://192.168.200.12:9092

(3)zookeeper3节点:

broker.id=3
zookeeper.connect=192.168.200.11,192.168.200.12,192.168.200.13:2181
listeners=PLAINTEXT://192.168.200.13:9092

4、启动服务

分别进入三台主机的kafka_2.11-1.1.1/bin目录下,启动 服务命令:

#./kafka-server-start.sh -daemon ../config/server.properties

5、测试服务

在zookeeper2节点,进入kafka_2.11-1.1.1/bin目录下,创建topic命令如下:

#./kafka-topics.sh --create --zookeeper 192.168.200.12:2181 --replication-factor 1 --partitions 1 --topic test

如果成功的话,会输出“Created topic “test”.”。
查看topic,虽然topic是在192.168.200.12上创建的,但是在其他机器上也能看到。例如在任意启动的机器kafka_2.11-1.1.1/bin的目录中执行命令如下:
zookeeper3:

#./kafka-topics.sh --list --zookeeper 192.168.200.12:2181

在这里插入图片描述
测试成功!说明kafka集群部署成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值