Kakfa集群搭建

先来整体熟悉下Kafka的一些概念和架构 (一)什么是Kafka? Kafka是由LinkedIn开发并开源的一个分布式消息系统,因其分布式和高吞吐率被广泛应用,现在已经在Hadoop和Spark等大数据的生态系统中成为一个必不可少的生态组件,可与各种计算模型,如离线计算,实时计算,流计算对接数据。 (二)为什么要用Kafka? 1,以时间复杂度O(1)的方式提供消息持久化和访问能力,即使应对TB级数据也能保证常数时间内的的访问和存储。 2,高吞吐率,在普通PC上也能保证每秒10万左右的消息传输能力 3,支持消息分区存储,并保证分区内消息的时序性,可支持分布式消费 4,能对接多种计算模型 5,支持副本,容错,水平扩容等特性。 (三)Kafka的名词解释 1,Broker : 一个单独的kafka机器节点就称为一个broker,多个broker组成的集群,称为kafka集群 2,Topic :类似数据库中的一个表,我们将数据存储在Topic里面,当然这只是逻辑上的,在物理上,一个Topic 可能被多个Broker分区存储,这对用户是透明的,用户只需关注消息的产生于消费即可 3,Partition:类似分区表,每个Topic可根据设置将数据存储在多个整体有序的Partition中,每个顺序化partition会生成2个文件,一个是index文件一个是log文件,index文件存储索引和偏移量,log文件存储具体的数据 4,Producer:生产者,向Topic里面发送消息的角色 5,Consumer:消费者,从Topic里面读取消息的角色 6,Consumer Group:每个Consumer属于一个特定的消费者组,可为Consumer指定group name,如果不指定默认属于group (四)Kafka的拓扑架构

(五)Kafka的安装 三台机器+外置Zookeeper集群: 192.168.1.1 kakfa1 zk1 192.168.1.2 kakfa2 zk2 192.168.1.3 kakfa3 zk3 关于zookeeper集群的安装,请参考博客:http://qindongliang.iteye.com/blog/1985145 (1) 下载kafka0.9.0.0 wget http://archive.apache.org/dist/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz (2)解压到某个目录 tar -zxvf kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz (3)配置config/server.properties 三个重要配置:

Java代码

  1. broker.id=0/1/2 三台机器配置不能重复
  2. log.dirs=/var/kafka_data 默认是在/tmp/kafka_logs下,目录会自动创建
  3. zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka ,默认kafka的文件会散落在zookeeper的根目录下
  4. 如果zookeeper上还有其他的文件如hbase,solr那就非常混乱,建议在连接后面加上/kafka这样就会以kafka为根目录

(4)一个例子和kafka基本命令如下: 生产者push数据:

消费者查看数据:

kafka在zookeeper上的目录结构:

kafka的基本命令介绍:

Java代码

  1. //启动一个kakfa-server:
  2. nohup bin/kafka-server-start.sh config/server.properties &
  3. //创建一个topic
  4. bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 3 --topic logstash
  5. //命令行发送数据到topic的logstash里面
  6. bin/kafka-console-producer.sh --broker-list localhost:9092 --topic logstash
  7. //查看kafka中的某个topic里面的数据:
  8. bin/kafka-console-consumer.sh --zookeeper localhost:2181/kafka --from-beginning --topic logstash
  9. //查看所有的topic列表
  10. bin/kafka-topics.sh --list --zookeeper localhost:2181/kafka
  11. //查看topic的详细信息
  12. bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

参考文章: 官网文档: http://kafka.apache.org/documentation.html#quickstart kafka实战例子1 http://www.mrhaoting.com/?p=152 kafka实战例子2 http://www.lujinhong.com/kafka集群操作指南.html kafka深度解析 http://www.jasongj.com/2015/01/02/Kafka深度解析/ kafka参数详解 http://debugo.com/kafka-params/ 官网参数详解 https://kafka.apache.org/08/configuration.html

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2016-02-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

提升 Node.js 应用性能的 5 个技巧

“如果nginx没有在你的节点服务器之前,那么你可能就错了。”Bryan Hughes在Twitter上说 Node.js是全球领先的用JavaScript——...

3204
来自专栏Java架构师历程

2、使用 API 网关

本书的七个章节是关于如何设计、构建和部署微服务。第一章介绍了微服务架构模式。它阐述了使用微服务的优点与缺点,以及尽管如此,微服务通常是复杂应用的理想选择。该系列...

3153
来自专栏大魏分享(微信公众号:david-share)

最流行的5大开源Web服务器

根据维基百科介绍,web服务器是“通过HTTP协议处理web请求的计算机系统”(a computer system that processes request...

6225
来自专栏上善若水

S006SELinux(SEAndroid)是个什么呀

SEAndroid 是一套安全机制,实现的主要目的是为了是Android系统更安全。 SELinux是被设计为一个灵活的可配置的MAC机制。 SEAndro...

1484
来自专栏ImportSource

消息队列可以有的样子

铺垫 无论是什么类型的消息队列,恐怕都离不开三个东东:读取端 、消息存储平台、写入端,无论你给这三者起了什么样子的名字。也就是写入、存储、读取。 写入端通常被叫...

4296
来自专栏友弟技术工作室

Nginx架构--nginx系列之二Nginx的架构详解

Nginx的架构详解 今天,回家,这篇文章在机场候机,原文来自这里 NGINX 在网络应用中表现超群,在于其独特的设计。许多网络或应用服务器大都是基于线程或者进...

4519
来自专栏企鹅号快讯

如何更精准的在 Github 上搜索开源库?你需要这些技巧!

正文共: 2468字 8图 预计阅读时间: 7分钟 一、前言 在日常工作中,我们并不推荐去重复造轮子,通常我们会去搜索一些稳定的第三方开源库来使用。而 Gith...

2116
来自专栏后端技术探索

深入 Nginx:我们是如何为性能和规模做设计的

NGINX 在网络应用中表现超群,在于其独特的设计。许多网络或应用服务器大都是基于线程或者进程的简单框架,NGINX突出的地方就在于其成熟的事件驱动框架,它能应...

750
来自专栏IT技术精选文摘

Kafka详细设计及其生态系统

Kafka生态-Kafka Core,Kafka Streams,Kafka Connect,Kafka REST Proxy和Schema Registry ...

2837
来自专栏编程坑太多

『中级篇』docker网络(23)

PS:本机基本上docker的多虚拟机网络已经完成了,比较简单,毕竟是演示环境,可能有老铁说,为啥设置成了自动获得IP,而不是静态IP,毕竟是学习的环境,我也尝...

642

扫码关注云+社区

领取腾讯云代金券