https://bbs.huaweicloud.com/blogs/112956 版权归PUMA项目组所有,转载请声明,多谢. kakfa大规模集群能力在前面已给大家分享过,kafka作为消息总线,在支撑云千万tps上千节点的集群能力非常出色,本文继续对业界关于单机多topic的性能瓶颈点问题(比如:https://yq.aliyun.com/articles/62832?spm=5176.100239.blogcont25379.8.KMUH1L),国内某云使用RocketMQ,性能对比唱衰k…
Kafka消息的存储 Kafka的设计基于一种非常简单的指导思想:不是要在内存中保存尽可能多的数据,在需要时将这些数据刷新(flush)到文件系统,而是要做完全相反的事情.所有数据都要立即写入文件系统中持久化的日志中,但不进行刷新数据的任何调用.实际中这样做意味着,数据被传输到OS内核的页面缓存中了,OS随后会将这些数据刷新到磁盘. 大家普遍为"磁盘很慢",因而人们都对持久化(persistent structure)结构能够提供说得过去的性能抱有怀疑态度.实际上,同人们的期望值相比,…
引言 上期我们对比了RocketMQ和Kafka在多Topic场景下,收发消息的对比测试,RocketMQ表现稳定,而Kafka的TPS在64个Topic时可以保持13万,到了128个Topic就跌至0.85万,导致无法完成测试.我们不禁要问: 为什么看不到Kafka性能暴跌的趋势呢? 今天的测试,就来排查一下这个问题,然后验证一下两个系统对外服务的稳定性.本次测试,要引入"稳定性测试"这个概念,那什么是稳定性测试呢?我们先来看一下定义: 稳定性测试:测试系统的长期稳定运行能力.在系统…
引言 上期我们对比了RocketMQ和Kafka在多Topic场景下,收发消息的对比测试,RocketMQ表现稳定,而Kafka的TPS在64个Topic时可以保持13万,到了128个Topic就跌至0.85万,导致无法完成测试.我们不禁要问: 为什么看不到Kafka性能暴跌的趋势呢? 今天的测试,就来排查一下这个问题,然后验证一下两个系统对外服务的稳定性.本次测试,要引入“稳定性测试”这个概念,那什么是稳定性测试呢?我们先来看一下定义: 稳定性测试:测试系统的长期稳定运行能力.在系统运行过程中…
目录 Kafka 概念.单机搭建与使用 基本概念介绍 Topic Producer Consumer Kafka单机配置,一个Broker 环境: 配置zookeeper 配置Kafka 使用Kafka 一些需要注意的问题 Kafka 概念.单机搭建与使用 官方网址:Apache Kafka® is a distributed streaming platform 基本概念介绍 在Kafka中有一些基本的概念, Topic 简介:Topic在Kafka中是一个抽象的概念,一个主题是已经发布的记录…
Topic 的配置与组成 之前我们仅主要介绍了Kafka Producer与Kafka Consumer 的相关配置,而未详细介绍过有关topic的配置.Topic的配置在Kafka 使用中也至关重要,因为它的参数足以影响集群性能以及topic 的行为. 在一个topic被创建后,会有它默认的参数,不过有些topic的参数可能仍需要根据实际情况进行一些调整,例如: Replication Factor Partition数目 Message Size Compression level Log…
转载自 huxihx,原文链接 Kafka 如何读取offset topic内容 (__consumer_offsets) 众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部…
RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较 RabbitMQ中,除了Simple Queue和Work Queue之外的所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储. RabbitMQ提供了四种Exchange:fanout,direct,topic,header header模式在实际使用中较少 **性能排序:fanout>direct>>topic.比例大约为11:10:6…
准备工作: 下载kafka http://apache.fayea.com/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz 解压kafka至D:\bigdata\kafka_2.10-0.10.0.0 下载instsrv.exe /srvany.exe 将instsrv.exe /srvany.exe 拷贝至 D:\bigdata\kafka_2.10-0.10.0.0\bin\windows 1.注册服务 以管理员身份打开cmd cd D:\bigdata\kaf…
引言 前几期的评测中,我们对比了Kafka和RocketMQ的吞吐量和稳定性,本期我们要引入一个新的评测标准--软件可靠性. 何为"可靠性"? 先看下面这种情况:有A,B两辆越野汽车,在城市的周边地区均能很好应对泥泞的路况.当一同开去穿越西藏,A车会因为西藏本地的汽油不达标,导致油路受阻无法点火,而B车顺利完成了穿越.因此我们说,B车的可靠性比A车高. 何为"软件可靠性"? "软件的可靠性"就是考察软件在各种异常突发的情况下的应对能力.常见的软件…
1.Kafka简介 kafka-分布式发布-订阅消息系统,开发语言-Scala,协议-仿AMQP,不支持事务,支持集群,支持负载均衡,支持zk动态扩容 2.Kafka的架构组件 1.话题(Topic):是特定类型的消息流.消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名: 2.生产者(Producer):是能够发布消息到话题的任何对象: 3.服务代理(Broker):已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群,broker的作用类…
引言 前几期的评测中,我们对比了Kafka和RocketMQ的吞吐量和稳定性,本期我们要引入一个新的评测标准——软件可靠性. 何为“可靠性”? 先看下面这种情况:有A,B两辆越野汽车,在城市的周边地区均能很好应对泥泞的路况.当一同开去穿越西藏,A车会因为西藏本地的汽油不达标,导致油路受阻无法点火,而B车顺利完成了穿越.因此我们说,B车的可靠性比A车高. 何为“软件可靠性”? “软件的可靠性”就是考察软件在各种异常突发的情况下的应对能力.常见的软件异常有:磁盘损坏.进程意外退出.宿主机宕机等情况.…
熟悉网络编程的都清楚系统只有65535个端口可用,1024以下的端口为系统保留,所以除去系统保留端口后可用的只有65411个端口,而一个TCP连接由TCP四元组(源IP.源端口.TCP.目标IP.目标端口)唯一确定,所以单机一个网卡时客户端最多只能打开65411个TCP连接,而有时我们的TCP服务需要数十万.上百万甚至更多TCP连接的压力测试,这时怎么办呢,通常有几个办法可以解决:挂多网卡.加机器: 1.挂多网卡要是真买网卡这也是个麻烦的事情或许你机器还不支持,还有就是添加虚拟网卡,这倒是不用什…
1.获取所有topic package com.example.demo; import java.io.IOException; import java.util.List; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeeper…
环境准备: ubuntu 开发环境: jdk 1.8 scala:2.11.0 spark 2.0 zookeeper 3.4.6 kafka  2.12-0.10.2.0 开始整合: 1 zookeeper的安装,这里我使用的zookeeper版本为3.4.6 a, 下载zookeeper安装包zookeeper-3.4.6.tar.gz   b, 解压安装文件到/usr/local/ 这是我的安装目录,具体可根据自己的情况而定: sudo tar -zxvf zookeeper-3.4.6.…
众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部到底保存了什么信息,特别是想查询某些consumer group的位移是如何在该topic中保存的.针对这些问题,本文将结合…
是指手动写扩充replicas的配置文件,然后使用工具进行操作. 参考官网site:http://kafka.apache.org/documentation.html#basic_ops_automigrate 1.首先创建一个三分区一副本的topic,并查看详细信息:    2.修改配置文件 将原有replicas为[0]扩充为[0,1], [1]扩充为[1,2],[2]扩充为[2,0,1] > cat partitions-to-move.json 3.执行操作,并检查修改情况 > bi…
前言:删除kafka topic及其数据,严格来说并不是很难的操作.但是,往往给kafka 使用者带来诸多问题.项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况.本文总结多个删除kafka topic的应用场景,总结一套删除kafka topic的标准操作方法. step1:如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费程序需要停止.因为如果有程序正在生产或者消费该topic,则该topic的offset信息一致会在broker…
该博文方法有问题,正确方案在http://www.cnblogs.com/dplearning/p/7992994.html 背景: 搭建了一个kafka集群,建立了topic test,用group_id  ttt 消耗topic. 但问题是,我消费的处理太慢了,导致了上百万数据的挤压,即offset滞后上百万 现在,想放弃上一次的任务,执行新的任务.但是topic名称和group_id不能变化. 想了几个方案,觉得重置offset是最符合我需求的. import os from conflu…
之前写过如何用服务器端的API代码来获取订阅某topic的所有consumer group,参见这里.使用服务器端的API需要用到kafka.admin.AdminClient类,但是这个类在0.11.0.0版本已经被标记为不推荐使用了,故目前最合适的方式还是通过客户端API:org.apache.kafka.clients.admin.AdminClient.今天碰到有人问这个问题,我就尝试写了一个.使用之前你需要引入kafka client包依赖(以2.2.0版本为例) Maven: <de…
原文  https://www.cnblogs.com/huxi2b/p/6061110.html 众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部到底保存了什么信息,特别…
我现在使用的是librdkafka 的C/C++ 的客户端来生产消息,用flume来辅助处理异常的数据,,, 但是在前段时间,单独使用flume测试的时候发现,flume不能对分区进行负载均衡!同一个集群中,一个broker的一个分区已经有10亿条数据,另外一台的另一个分区只有8亿条数据: 因此,我对flume参照别人的做法,增加了拦截器: 即在flume配置文件中 增加以下字段: ----- stage_nginx.sources.tailSource.interceptors = i2sta…
Kafka官方提供了两个脚本来管理topic,包括topic的增删改查.其中kafka-topics.sh负责topic的创建与删除:kafka-configs.sh脚本负责topic的修改和查询,但很多用户都更加倾向于使用程序API的方式对topic进行操作.   上一篇文章中提到了如何使用客户端协议(client protocol)来创建topic,本文则使用服务器端的Java API对topic进行增删改查.开始之前,需要明确的是,下面的代码需要引入kafka-core的依赖,以kafka…
以下均为开发测试环境下: 启动Zookeeperbin/zookeeper-server-start.sh config/zookeeper.properties &启动kafkabin/kafka-server-start.sh config/server.properties创建topicbin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic r…
前言 kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的:它只有在创建新的topic时才会参与工作.除非将已有的partition迁移到新的服务器上面:所以需要将一些topic的分区迁移到新的broker上.另外一种情况就是集群减少broker节点,对原有的topic信息进行迁移,重新分配broker节点. 简单案例 本次案例将原本存在于两个borker节点(86,87)上的topic:test01(两副本),转移到87,88两个broker上(重新分配)…
Topic日志清理 server.properties: log.cleanup.policy=delete (默认) 1. 按时间维度进行Kafka日志清理 log.retention.hours=1 log.retention.minutes=60 log.retention.ms=3600000 2. 按空间维度进行Kafka日志清理 log.retention.bytes=1073741824 无论时间还是空间维度,只要满足其中一个log就会被清理. 一小时后发现log已经被清除.…
1. 问题描述 我创建了一个名称为myTest的topic,该topic有三个分区,在我的应用中spark streaming以direct方式连接kakfa,但是发现只能消费一个分区的数据,多次更换comsumer group依然如此. 2 环境配置 kafka集群环境, 主机 IP 操作系统 kakfa node1 192.168.1.101 Centos 6.5 kafka_2.11-0.10.1.1 node2 192.168.1.102 Centos 6.5 kafka_2.11-0.…
前提是已经安装好了zk集群 1.下载  kafka_2.11-1.0.0.tgz  下载网址 http://kafka.apache.org/documentation.html 2.解压  tar -zxvf kafka_2.11-1.0.0.tgz 3.修改配置文件 进入config目录修改server.properties 文件 修改自己的logs目录与设置分区数量 设置zk连接地址 保存后复制2分一样的,分别改端口与 log日志目录,还有 broke.id 修改server2.prope…
[root@f java]# tail -30 nohup.outsearchES-TimeMillisSpent:448P->1602@fT->http-nio-8080-exec-3t->池州小型柴油机移动泵哪家好kw->柴油机移动泵kws->柴油机移动泵,柴油机水泵机组,自吸柴油机泵searchES-TimeMillisSpent:387P->1602@fT->http-nio-8080-exec-10t->东莞知名6061铝合金价格kw->60…
在启动 Kafka 集群之前,我们需要配置好 log.dirs 参数,其值是 Kafka 数据的存放目录,这个参数可以配置多个目录,目录之间使用逗号分隔,通常这些目录是分布在不同的磁盘上用于提高读写性能. 当然我们也可以配置 log.dir 参数,含义一样.只需要设置其中一个即可. 如果 log.dirs 参数只配置了一个目录,那么分配到各个 Broker 上的分区肯定只能在这个目录下创建文件夹用于存放数据. 但是如果 log.dirs 参数配置了多个目录,那么 Kafka 会在哪个文件夹中创建…