后台服务于工具消息中间件 kafka架构及高可用集群安装部署教程

42 篇文章 0 订阅
30 篇文章 0 订阅

目录

一、 简单介绍

二、 架构

三、利用安装 zookeeper 的三台服务器做 KAFKA 集群

3.1 下载 kafka_2.9.2-0.8.1

3.2 创建log文件夹

3.3 配置kafka

3.4 启动kafka

3.5 问题解决 

 四、KAFKA 集群验证

4.1 创建 topic

4.2 查看 topic

4.3 开启发送者并发送消息

4.4 开启消费者并接收消息


一、 简单介绍

什么是 kafka 呢,他是 LinkedIn 开发的一个分布式消息系统,用 scala 编写的,可以水平扩展和高吞吐率。
原本开发自 LinkedIn,用作他们的活动流和运营数据处理管道的基础,之后被多家公司使用,慢慢发展壮大起来。

kafka 是分布式的,基于发布/订阅的消息系统。
1、 即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。
2、 高吞吐率:即使在非常廉价的商用机器上也能做到单机支持每秒 100k 条以上消息的传输。
3、 支持分区,消息分布式消费,但是只能保证每个 partition 内的消息顺序传输。并且支持在线水平扩展。
为何使用消息中间件呢,大家肯定接触过 rabbitmq、activemq、redis 等,估计有很多感触。我就不详细描述了,这
个只能亲身参加过大的技术架构,自己身在其中,并且感受到不用消息中间件和用的区别。

二、 架构

了解架构之前,我们先了解一下基本名词。
Broker:安装了 kafka 的服务器就是一个 broker。
Topic:消息的类比,最好一类数据定一个 topic 去存储传输。
Partition:分区,topic 可以定分到几个分区中。
Producer:发送消息,发送者。
Consumer:消费消息,消费者。
Consumer Group:每个 Consumer 属于一个特定的 Consumer Group。

 

从图中来看,kafka 集群包含若干个 producer 和 consumer 以及 broker,还有一个 zk 集群。Producer 通过 push 模式将数据发送到 broker,Consumer 通过 pull 模式拉取数据。
Producer 发送消息到 broker 时,根据 partition 机制选择分不到哪一个 partition,设置合理的情况下,所有消息可以均匀分不到不同的 partition 里,实现了负载均衡。

三、利用安装 zookeeper 的三台服务器做 KAFKA 集群

3.1 下载 kafka_2.9.2-0.8.1

下载地址:https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz
分别在三台服务器创建kafka目录并且下载kafka压缩包
 

mkdir /usr/local/kafka
tar –zxvf kafka_2.9.2-0.8.1.tar.gz

3.2 创建log文件夹

mkdir /usr/local/kafka/kafkalogs

3.3 配置kafka

cd /usr/local/kafka/kafka_2.9.2-0.8.1/config

# vi server.properties 修改项如下:

broker.id=0 //当前机器在集群中的唯一标识
port=9092 //kafka对外提供服务的tcp端口
host.name=10.211.55.7 //主机IP地址
log.dirs=/usr/local/kafka/kafkalogs //log存放目录
message.max.byte=5048576 //kafka一条消息容纳的消息最大为多少
default.replication.factor=2 //每个分区默认副本数量
replica.fetch.max.bytes=5048576
zookeeper.connect=10.211.55.7:2181, 10.211.55.8:2181, 10.211.55.9:2181

3.4 启动kafka

 ./kafka-server-start.sh -daemon ../config/server.properties //后台启动运行

3.5 问题解决 

root@master ~]# /export/kafka/bin/kafka-console-producer.sh --broker-list
10.14.2.201:9092,10.14.2.202:9092,10.14.2.203:9092,10.14.2.204:9092 --topic test
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
# /export/kafka/bin/kafka-console-consumer.sh --zookeeper
10.14.2.201:2181,10.14.2.202:2181,10.14.2.203:2181,10.14.2.204:2181 --topic test --from-beginning
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

解决方法:

# 下载slf4j-1.7.6.zip
# http://www.slf4j.org/dist/slf4j-1.7.6.zip
# 解压
unzip slf4j-1.7.6.zip
# 把slf4j-nop-1.7.6.jar 包复制到kafka libs目录下面
cd slf4j-1.7.6
cp slf4j-nop-1.7.6.jar /export/kafka/libs/

 四、KAFKA 集群验证

4.1 创建 topic

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

4.2 查看 topic

 ./kafka-topics.sh --list --zookeeper 10.211.55.7:2181

4.3 开启发送者并发送消息

./kafka-console-producer.sh --broker-list 10.211.55.7:9092 --topic test

4.4 开启消费者并接收消息

./kafka-console-consumer.sh --zookeeper 10.211.55.8:2181 --topic test --from-beginning

 

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

纵然间

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

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

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

打赏作者

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

抵扣说明:

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

余额充值