Kafka简介和搭建
来源:互联网 发布:2017全国省市区数据库 编辑:程序博客网 时间:2024/04/30 09:04
简介:
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。
Kayka的整体架构:
Kayka的整体架构非常简单,是显式分布式架构,producer、broker(kafka)和consumer都可以有多个。数据从producer发送到broker,broker承担一个中间缓存和分发的作用。broker分发注册到系统中的consumer。broker的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。
Topic:特指Kafka处理的消息源(feeds of messages)的不同分类。
Partition:Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。
Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。
Producers:消息和数据生产者,向Kafka的一个topic发布消息的过程叫做producers。
Consumers:消息和数据消费者,订阅topics并处理其发布的消息的过程叫做consumers。
Broker:缓存代理,Kafka集群中的一台或多台服务器统称为broker。
Kayka的设计优点:
1、吞吐量
高吞吐是kafka需要实现的核心目标之一,为此kafka做了以下一些设计:
数据磁盘持久化:消息不在内存中cache,直接写入到磁盘,充分利用磁盘的顺序读写性能,基于kernel态的拷贝技术
2、负载均衡
存在多个partiiton,每个partition有自己的replica,每个replica分布在不同的Broker节点上
多个partition需要选取出lead partition,lead partition负责读写,并由zookeeper负责fail over
通过zookeeper管理broker与consumer的动态加入与离开
3、拉取系统
由于kafka broker会持久化数据,broker没有内存压力,因此,consumer非常适合采取pull的方式消费数据4、可扩展性
当需要增加broker结点时,新增的broker会向zookeeper注册,而producer及consumer会根据注册在zookeeper上的watcher感知这些变化,并及时作出调整。
kafka的安装部署:
版本:kafka_2.10-0.8.2.1
** 2.10是scala的版本,kafka是用Scala开发的,scale的安装版本应该对应
** 0.8.2.1是kafka的版本
1、安装jdk和zookeeper,并启动
$ sbin/zkServer.sh start --启动
$ sbin/zkServer.sh status --查看状态,也可jps查看
2、安装scala
[tom@blue01 cdh]$ tar zxvf /opt/softwares/scala-2.10.4.tgz
$ su -
# vi /etc/profile
#SCALA_HOME
SCALA_HOME=/opt/modules/cdh/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
$ scala -version
3、安装kafka
$ tar zxvf /opt/softwares/kafka_2.10-0.8.2.1.tgz
4、修改配置文件
a)
server.properties:
# 消息中转站,每个broker id必需唯一
broker.id=0
port=9092
# 主机名,去掉注解
host.name=blue01.mydomain
# kafka存储数据的目录,并非存放日志的目录,$ mkdir data
log.dirs=/opt/modules/cdh/kafka_2.10-0.8.2.1/data
# 指定zookeeper服务器
zookeeper.connect=blue01.mydomain:2181
b)
producer.properties:
# broker列表
metadata.broker.list=blue01.mydomain:9092
c)
consumer.properties:
zookeeper.connect=blue01.mydomain:2181
5、启动kafka
bin/kafka-server-start.sh config/server.properties
kafka初次使用:
1、创建一个topic
# 副本因子通常是奇数,不大于集群服务器台数
# 分区数不能大于集群服务器台数
bin/kafka-topics.sh --create --zookeeper blue01.mydomain:2181 --replication-factor 1 --partitions 1 --topic testTopic
# 查看topic list
bin/kafka-topics.sh --list --zookeeper blue01.mydomain:2181
2、启动生产者
bin/kafka-console-producer.sh --broker-list blue01.mydomain:9092 --topic testTopic
3、启动消费者,再开一个窗口
bin/kafka-console-consumer.sh --zookeeper blue01.mydomain:2181 --topic testTopic --from-beginning
- Kafka简介和搭建
- Kafka简介及集群搭建详细流程
- kafka简介和应用场景
- Kafka 安装和搭建 (一)
- kafka单机搭建和测试
- zookeeper和kafka集群搭建
- zookeeper 和 kafka 集群搭建
- zookeeper集群搭建和kafka集群搭建
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- kafka集群搭建和使用Java写kafka生产者消费者
- java设计模式之创建模式(工厂模式,Builder,单例,原型)
- JavaScript---原型
- 最短路计数(spfa)
- 高性能IO模型浅析
- mysql command
- Kafka简介和搭建
- 自编的一些js
- HDU 1556 color the ball(树状数组)
- Python的matplotlib—绘图(3)
- Vue.js学习笔记(三)
- JSP基础知识
- 【SIKI】_11_Unity动画插件-DOTween笔记
- 简介
- hud 1075 What Are You Talking About (字典树或map)