刚接触一些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. mysql关联更新

    update tb_sdd_info a,tb_bnm_evian_info b set a.username=b.username where a.username=b.memberno and  ...

  2. org.openqa.selenium.SessionNotCreatedException: A new session could not be created.

    解决方案 1. 重新插拔手机. 2. 检查appium端口是否被占用,如是,杀掉占用了改端口的进程,然后重启appium. 3.

  3. iOS内购的订单对应和补单

    内购的关键类: 1.SKPayment(SKMutablePayment可将自己的参数一对一与苹果产生的payment对应起来) 2.TransactionObserver:交易状态更新时执行此方法, ...

  4. qt学习:信号,槽

    [C.GUI.Qt.4编程(第二版)](加)布兰切特,(英)萨默菲尔德.扫描版[学习库www.xuexi111.com].pdf 信号和槽是Qt编程的基础,它可以让各种对象联系在一起. 1. 使用co ...

  5. smarty函数-转载

    Smarty常用函数 2009-08-13 14:05:55|  分类: Php |举报 |字号 订阅   1 .include_once语句: 引用文件路径,路径必需正确.   eg:include ...

  6. js中递归解析xml

    xml结构: <RightMenuItems>  <Item Code="New" Name="新建" GroupCode="Edi ...

  7. java下拉框,滚动条

    package com.soft.test; /** * 下拉列表.下拉框.滚动条的使用 */ import javax.swing.*; import java.awt.*; public clas ...

  8. codeforces 630P. Area of a Star

    题目链接 圆上n个点等距离分布, 求构成的星星的面积. 我们可以求三角形OAB的面积, ∠CAE = 1/2 ∠ COE = PI/n, 那么∠CAO = PI/2n, ∠AOB非常好求, 就是PI/ ...

  9. mybatis之动态SQL

    <if>的使用 如果第一个if不成立的话可能会出现where and的语法错误,解决方法是在外层加<where>标签,此时如果以and和or衔接where的话会被删除. < ...

  10. Scale-up(纵向扩展) vs Scale-out(横向扩展)

    转载:http://wuaner.iteye.com/blog/1843799 http://www.javaworld.com/article/2077780/java-web-developmen ...