一、下载

下载地址: http://kafka.apache.org/downloads.html

kafka目录结构

目录

说明

bin 操作kafka的可执行脚本,还包含windows下脚本
config 配置文件所在目录
libs 依赖库目录
logs 日志数据目录,目录kafka把server端日志分为5种类型,
分为:server,request,state,log-cleaner,controller

二、安装及启动

1. 解压

  > tar -xzf kafka_2.9.1-0.8.2.2.tgz
> cd kafkakafka_2.9.1-0.8.2.2
2. 配置

kafka最为重要三个配置依次为:broker.id、log.dir、zookeeper.connect

kafka server端config/server.properties参数说明参照: kafka主要配置

根据属性说明完成配置:

broker.id = 1

port = 9092

host.name=h1(h1为本人配置的hostname)

log.dirs=/root/software/kafka/log

zookeeper.connect=h1:2181

配置zookeeper(假设您已经安装了zookeeper,如果没有安装,参照 zookeeper集群环境安装配置)

3.启动服务

在启动kafka时需要先启动zookeeper服务

kafka启动命令:

> bin/kafka-server-start.sh config/server.properties

通过jps命令可以查看zookeeper和kafka是否启动成功,如下图:

4.创建topic (此处创建是名称为‘my-topic’的topic,它只有一个分区,一个副本)

> bin/kafka-topics.sh  --create --zookeeper h1:2181  --replication-factor 1 --partitions 1 --topic my-topic

5.查看topic列表

> bin/kafka-topics.sh --list --zookeeper h1:2181

6.发送消息

Kafka 使用一个简单的命令行producer,从文件中或者从标准输入中读取消息并发送到服务端。默认的每条命令将发送一条消息。
  
运行producer并在控制台中输一些消息,这些消息将被发送到服务端:

> bin/kafka-console-producer.sh --broker-list
h1:9092 --topic my-topic

this is one message

this is another message

如图:

7.启动consumer

Kafka也有一个命令行consumer可以读取消息并输出到标准输出:

> bin/kafka-console-consumer.sh --zookeeper
h1:2181 --topic my-topic --from-beginning

this is one message

this is another message

如图:

三、搭建一个多个broker的集群

刚才只是启动了单个broker,现在启动有3个broker组成的集群,这些broker节点也都是在本机上的:
1. 首先为每个节点编写配置文件:

    > cp config/server.properties config/server1.properties
> cp config/server.properties config/server2.properties

  编辑新文件并设置如下配置
    config/server1.properties:
broker.id=1
port=9093
log.dirs=log.dirs=/root/software/kafka/log1
config/server2.properties:
broker.id=2
port=9094
log.dirs=/root/software/kafka/log2
    broker.id在集群中唯一的标注一个节点,因为在同一个机器上,所以必须制定不同的端口和日志文件,避免数据被覆盖。
2. 之前我们已经启动zookeeper和一个节点,现在只需要启动这两个新节点
    > bin/kafka-server-start.sh config/server-1.properties &
> bin/kafka-server-start.sh config/server-2.properties &

3. 创建一个拥有三个副本的topic: replicated-topic
     > bin/kafka-topics.sh  --create --zookeeper h1:2181  --replication-factor 3 --partitions 1 --topic replicated-topic
   我们可以通过运行"describe topics"命令来查看每个节点信息
     > bin/kafka-topics.sh --describe --zookeeper h1:2181 --topic replicated-topic
       Topic:replicated-topic    PartitionCount:1    ReplicationFactor:3    Configs:
    Topic: replicated-topic    Partition: 0    Leader: 0    Replicas: 0,1,2    Isr: 0,1,2


下面解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行。
    
leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
     replicas:列出了所有的副本节点,不管节点是否在服务中.

     isr:是正在服务中的节点.
     在我们的例子中,节点0是作为leader运行。

我们可以对比一下看一下之前创建的my-topic

4.  发送接收消息如上步骤6、7,不再重复写出

5.  现在测试一下多broker集群的容错能力,通过"describe topics"命令知道
replicated-topic的leader为broker0,现在我们kill掉它

> ps -ef | grep server.properties

> kill –9 20549

另外一个节点被选做了leader,node 0不再出现在 in-sync
副本列表中:

通过测试验证虽然最初负责续写消息的leader
down掉了,但之前的消息还是可以消费的:

kafka安装与使用的更多相关文章

  1. hadoop 之 kafka 安装与 flume -> kafka 整合

    62-kafka 安装 : flume 整合 kafka 一.kafka 安装 1.下载 http://kafka.apache.org/downloads.html 2. 解压 tar -zxvf ...

  2. Kafka安装及部署

    安装及部署 一.环境配置 操作系统:Cent OS 7 Kafka版本:0.9.0.0 Kafka官网下载:请点击 JDK版本:1.7.0_51 SSH Secure Shell版本:XShell 5 ...

  3. [Kafka] - Kafka 安装介绍

    Kafka是由LinkedIn公司开发的,之后贡献给Apache基金会,成为Apache的一个顶级项目,开发语言为Scala.提供了各种不同语言的API,具体参考Kafka的cwiki页面: Kafk ...

  4. Kafka 安装配置 windows 下

    Kafka 安装配置 windows 下 标签(空格分隔): Kafka Kafka 内核部分需要安装jdk, zookeeper. 安装JDK 安装JDK就不需要讲解了,安装完配置下JAVA_HOM ...

  5. kafka安装教程

    今天需要在新机器上安装一个kafka集群,其实kafka我已经装了十个不止了,但是没有一个是为生产考虑的,因此比较汗颜,今天好好地把kafka的安装以及配置梳理一下: 1,kafka版本选取: 现在我 ...

  6. Kafka安装及开启SASL_PLAINTEXT认证(用户名和密码认证)

    前些日子要封装一个kafka的客户端驱动,配置了下kafka环境,发现配置复杂度完爆rabbitmq很多倍啊,而且发布订阅模式使用起来也很麻烦,可能就胜在分布式了吧. kafka需要java环境,自行 ...

  7. Kafka安装与配置(windows)

    作者:灬花儿灬 出处:http://www.cnblogs.com/flower1990/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  8. kafka安装步骤

    kafka 安装内存会报不够 https://stackoverflow.com/questions/9350437/incompatible-initial-and-maximum-heap-siz ...

  9. kafka安装与简单使用

    一.kafka安装 安装是非常简单的,现在推荐安装0.8的版本,这个版本是非常稳定的,而且公司里面也多用此版本. 简单的安装: 这个是我使用的版本,kafka_2.11-0.8.2.2.tgz 直接t ...

  10. kafka系列一、kafka安装及部署、集群搭建

    一.环境准备 操作系统:Cent OS 7 Kafka版本:kafka_2.10 Kafka官网下载:请点击 JDK版本:1.8.0_171 zookeeper-3.4.10 二.kafka安装配置 ...

随机推荐

  1. HTML5 Canvas实现刮刮卡效果实例

    HTML: <style> #canvas { border: 1px solid blue; position: absolute; left: 10px; top: 10px; bac ...

  2. listview的动态加载数据问题

    1:调用adapter.notifyDataSetChanged()却不起作用 原因可能有一下几点 1.数据源没有更新,调用notifyDataSetChanged无效. 2.数据源更新了,但是它指向 ...

  3. CentOS7下安装SVN服务端

    CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...

  4. C#入门经典(第五版)学习笔记(一)

    ---------------变量和表达式---------------赋值运算符:+=:-=:*=:/=:%=例如:i+=j 相当于 i=i+j i-=j 相当于 i=i-j以此类推 按位运算符:& ...

  5. 【转】Entity Framework教程

    转自:http://www.cnblogs.com/xray2005/category/189491.html   Entity Framework系列文章导航 摘要: 本节集合了Entity Fra ...

  6. 知识库系统confluence5.8.10 安装与破解

    一直对知识库体系很在意,设想这样的场景,公司历年的研发资料只要一个搜索,相关的知识点就全部摆在面前,任君取用,想一想就无限迷人,只是从10年开始,由于种种原因,终究没能好好研究一下.最近机缘巧合,可以 ...

  7. 入门1:PHP的优点

    一.语法简单 二.学习成本低 (因为语法简单 所以学习成本低) 三.开发效率高 (PHP运行流程很简单,语法也很简单,必然开发效率就高) 四.跨平台 (我们只需要写一份PHP的程序,就可以非常方便的把 ...

  8. 在CMD下用java命令出现“找不到或无法加载主类”问题

    解决思路: 从网上查找原因和解决方法,有提到环境变量classpath设置问题,但多次尝试问题依旧没有解决.然后使用java -cp %classpath; Hello执行,结果正确. 使用echo  ...

  9. echshop jquery与transpart冲突解决?

    <script type="text/javascript">$(function() {window.__Object_toJSONString = Object.p ...

  10. .NET序列化的一点技巧

    介绍 序列化是将对象状态转换为可保持或传输的形式的过程.序列化的补集是反序列化,后者将流转换为对象.这两个过程一起保证数据易于存储和传输. .NET Framework 提供了两个序列化技术: 二进制 ...