刚接触一些Apache Kafka的内容,用了两天时间研究了一下,仅以此文做相关记录,以供学习交流。

 概念:

kafka依赖的项:

1. 硬件上,kafka利用线性存储来进行硬盘直接读写。

2. kafka没有使用内存作为缓存。

3. 用zero-copy。

4. Gzip和Snappy压缩,

5. kafka对事务处理比较弱,但是message分发上还是做了一定的策略来保证数据递送的准确性的。

kafka关于存储的几个概念

1. Partition:同一个topic下可以设置多个partition,目的是为了提高并行处理的能力。可以将同一个topic下的message存储到不同的paritition下。

2. Offset:kafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查找。

在分布式方面:

1. broker的部署是没有主从结构的,每个节点都是同等的,节点的增减和减少都不需要改变任何配置。

2. producer和consumer通过zookeeper去发现topic,并通过zookeeper来协调生产和消费的过程。

3. producer、consumer和broker均采用TCP连接,通信基于NIO实现。并且Producer和consumer能自动检测broker的增加和减少。

一.配置

克隆出三台虚拟机,我这三台虚拟机的ip分别为
192.168.128.129
192.168.128.132
192.168.128.133
在129这个服务器上找到 kafka目录/config/server.properties文件,做如下修改
broker.id=129
host.name=192.168.128.129
zookeeper.connection=192.168.128.129:2181
这里只用到了一个zookeeper,并部署到了129上,没有用集群,当然也可以部署到其他机器上。
132上的kafka配置
roker.id=132
host.name=192.168.128.132
zookeeper.connection=192.168.128.129:2181

133上的kafka配置

broker.id=133
host.name=192.168.128.133
zookeeper.connection=192.168.128.129:2181

二.测试

在129上启动zookeeper服务器
bin/zkServer.sh start conf/zoo.cfg

启动129,132,133上的kafka服务

[root@bogon kafka_2.8.0-0.8.1]# nohup bin/kafka-server-start.sh config/server.properties &

在任意机器上建一个topic,因为有三个kafka服务,所以这里replication-factor设为3

bin/kafka-topics.sh --create --zookeeper 192.168.128.129:2181 --replication-factor 3 -partitions 1 --topic 3test
Created topic "3test".

查看topic,此时的leader kafka为129,repicas:集群里有三个kafka,Isr:正常使用的kafka

bin/kafka-topics.sh --describe --zookeeper 192.168.128.129:2181
Topic:3test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: 3test Partition: 0 Leader: 129 Replicas: 129,132,133 Isr: 129,132,133

在133这台机器上开启一个producer,往132这个kafka发消息

[root@slave-03 kafka_2.8.0-0.8.1]# bin/kafka-console-producer.sh --broker-list 192.168.128.132:9092 --topic 3test
this is a message to 132 broker
re?

停掉132的kafka,再次查看topics,此时可用的Isr为129和133,leader依然为129,因为129的kafka没有被停过,所以没有重新选举leader

[root@slave-02 kafka_2.8.0-0.8.1]# bin/kafka-topics.sh --describe --zookeeper 192.168.128.129:2181
Topic:3test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: 3test Partition: 0 Leader: 129 Replicas: 129,132,133 Isr: 129,133

在129上开启一个consumer

[root@bogon kafka_2.8.0-0.8.1]# bin/kafka-console-consumer.sh --zookeeper 192.168.128.129:2181 --topic 3test --from-beginning
this is a message to 132 broker
re?
自此,发现停掉了132,依然能通过zookeeper从129和133的kafka上收到发往132的消息。
kafka集群测试通过

kafka集群配置与测试的更多相关文章

  1. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  2. HyperLedger Fabric基于zookeeper和kafka集群配置解析

    简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群 ...

  3. Kafka集群配置---Windows版

    Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,Kafka对消息进行保存时是通过tipic进行分组的.今天我们仅实现Kafka集群的配置.理论的抽空在聊 前言 最近研究kafka,发现网上很多 ...

  4. Kafka 集群配置SASL+ACL

    一.简介 在Kafka0.9版本之前,Kafka集群时没有安全机制的.Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等.来获取 ...

  5. java架构之路(MQ专题)kafka集群配置和简单使用

    前面我们说了RabbitMQ和RocketMQ的安装和简单的使用,这次我们说一下Kafka的安装配置,后面我会用几个真实案例来说一下MQ的真实使用场景.天冷了,不愿意伸手,最近没怎么写博客了,还请见谅 ...

  6. kafka能做什么?kafka集群配置 (卡夫卡 大数据)

    什么是Kafka 官网介绍: 几个概念: 详细介绍 : 操作kafka: kafka集群 消息测试 问题检测 什么是Kafka 官网介绍: ApacheKafka是一个分布式流媒体平台.这到底是什么意 ...

  7. Kafka集群配置

    kafka_2.11-0.9.0.1.tgz 1.进入项目前的目录 cd /home/dongshanxia mkdir kafka #创建项目目录 cd kafka #进入项目目录 mkdir ka ...

  8. 06.搭建kafka集群环境并测试

    参考: https://www.cnblogs.com/zhangs1986/p/6565639.html https://www.cnblogs.com/frankdeng/p/9403883.ht ...

  9. kafka集群配置和java编写生产者消费者操作例子

    kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...

随机推荐

  1. ECSHOP 模版文件里的编辑区域

    Ecshop 中的模板能够有可编辑区域,在模板中是通过 <!-- TemplateBeginEditable name="左边区域" --> <!-- Templ ...

  2. Android中实现ListView圆角效果[转]

    本文演示如何Android中实现ListView圆角效果. 无论是网站,还是APP,人们都爱看一些新颖的视图效果.直角看多了,就想看看圆角,这几年刮起了一阵阵的圆角设计风:CSS新标准纳入圆角元素,特 ...

  3. C++ 文件操作实例

    图1 文件个数及名称 图2 文件内容 背景:如图1所示,现有9个要处理的文件,每个文件的内容格式如图2所示,仅仅只是数值部分不同. 问题:如何提取每个文件中的相同属性的数值到同一个文件中? 输出示例: ...

  4. 一个解析url参数方法

    function getRequestParameter(a) { var b = document.location.search || document.location.hash; if (a ...

  5. bool operator==(const Array&)const; 这最后一个const 是做什么用的

    字符重载也是个函数,在函数末尾加CONST 这样的函数叫常成员函数.常成员函数可以理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成 ...

  6. FSM(有限状态机)

    游戏引擎是有限状态机最为成功的应用领域之一,由于设计良好的状态机能够被用来取代部分的人工智能算法,因此游戏中的每个角色或者器件都有可能内嵌一个状态机.考虑RPG游戏中城门这样一个简单对象,它具有打开( ...

  7. Android 中延迟执行的小结

    一.开启新线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();---- ...

  8. 三种尺寸:手机SIM卡使用指南

    毫无疑问目前卖的最火的手机非iPhone 5s莫属,相信仍有不少网友目前处于观望之中,由于iPhone 5s和iPhone 5c采用与iPhone相同的Nano-SIM卡,因此不少新用户在使用之前也徒 ...

  9. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap good

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  10. css包含块containing block

    <css权威指南>P167: The Containing Block Every element is laid out with respect to its containing b ...