kafka
文章平均质量分 57
huanggang028
每一天,努力让梦想更近一些
展开
-
Kafka深度解析,众人推荐,精彩好文!
背景介绍Kafka简介Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分布式消息消费,同时保证每个partition内的消息顺序传输同转载 2015-03-05 14:36:03 · 1822 阅读 · 0 评论 -
编写dynamodb基于GSI的分页查询
主表结构(offline-archive.201604)msgid(主分区键,字符串), msg(字符串), topic(字符串), ts(long型时间戳)GSI二级索引(topic-ts-index)项目键(topic)排序键(ts)原创 2016-05-04 11:12:27 · 2968 阅读 · 0 评论 -
利用kafka内建的特殊topic 做offsets 提交和检索
In Kafka releases through 0.8.1.1, consumers commit their offsets to ZooKeeper. ZooKeeper does not scale extremely well (especially for writes) when there are a large number of offsets (i.e., consumer原创 2016-04-19 19:20:07 · 3080 阅读 · 1 评论 -
How to choose the number of topics/partitions in a Kafka cluster?
This is a common question asked by many Kafka users. The goal of this post is to explain a few important determining factors and provide a few simple formulas.More Partitions Lead to Higher Throug转载 2015-12-14 10:01:59 · 827 阅读 · 0 评论 -
kafka replica分布算法
验证replica分布算法目的: replicas尽可能分散在各broker; 如果某个replica在指定broker后,剩余replica需要到其他broker上面方法: 以一个随机位置点开始round-robin方式分配所有partition的第一个replica 剩余replica以一个递增量计算出所在的broker原创 2015-11-02 14:44:23 · 1220 阅读 · 0 评论 -
kafka topic增加replica报错解决
刚开始测试环境中给一个业务方建的topic没有增加replica,导致前天虚拟机down掉,业务方反馈无法写入的问题。于是决定将所有replica为1的topic改为2,于是照着官方文档上的说明试试,但由于编辑json文件出错了,却手贱地执行了 --execute,后面即使改对,也无法成功。总是报错:bin/kafka-reassign-partitions.sh --zookeeper原创 2015-10-27 11:12:21 · 7571 阅读 · 0 评论 -
Kafka Reliability - When it absolutely, positively has to be there
http://www.slideshare.net/gwenshap/kafka-reliability-when-it-absolutely-positively-has-to-be-there?smtNoRedir=1转载 2015-11-13 16:41:38 · 736 阅读 · 0 评论 -
kafka常用运维命令
列出所有topic:bin/kafka-topics.sh --zookeeper localhost:2181 --list说明:其实就是去检查zk上节点的/brokers/topics子节点,打印出来创建topic:bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic order_ledg原创 2015-11-03 16:06:54 · 18365 阅读 · 1 评论 -
未释放kafka资源导致的问题
最近业务方在用我们封装的sdk时候,经常出现一个奇怪的问题,明明只启动了一个tomcat实例,相当于只有一个消费线程,但通过offsetmonitor观察始终出现多余的消费线程,通过jstack打印tomcat线程栈,也没有发现有多个,最后经过多方排查,发现其实另外还存在zk连接,一直占用着某个partition没释放。关键的原因是初始化消费者时,其实没有初始化成功,但是由于搞忘了抱异常的时候应该原创 2015-09-30 10:41:35 · 3875 阅读 · 0 评论 -
kafka源码环境准备
1/安装gradle首先下载gradle安装包,解压到某个文件路径,然后配置~/.bash_profileexport GRADLE_HOME=/Users/huanggang/gradle-2.7export PATH=$GRADLE_HOME/bin:$PATH之后执行 source ~/.bash_profile验证安装 huanggang@huangga原创 2015-09-30 11:14:31 · 1439 阅读 · 0 评论 -
Kafka 几个重要的配置总结
注意:配置基于Kafka 0.8.2.1broker配置#非负整数,用于唯一标识brokerbroker.id 0#kafka持久化数据存储的路径,可以指定多个,以逗号分隔log.dirs /tmp/kafka-logs#broker接收连接请求的端口port 9092#指定zk连接字符串,[hostname:port]以逗号原创 2015-08-21 10:21:12 · 68709 阅读 · 2 评论 -
对于自定义封装的Kafka客户端限制输出日志信息
最近在对kafka客户端进行轻量级封装,使得其具有简单的权限控制功能,由于不能暴露任何关于brokerlist,zookeeperlist的信息给客户端,只是对于授权的key后进行正确构造即可。而由于kafka默认是输出了很多info日志,里面broker zookeeper主机/端口信息暴露无遗,于是简单设置下对应的Logger级别关闭即可:static {// 修改kafka日志输出级原创 2015-08-12 22:23:24 · 3955 阅读 · 0 评论 -
通过Kafka Admin API执行并获取结果到客户端
目前的需求是将kafka管理的相关操作,如创建/删除/修改topic等集成到web 管理端, 但有个问题是执行的时候是打印到服务端标准输出的(控制台),没法返回给前端页面,于是,简单做了下修改,这样便完成了从标准输出获取信息,返回给前端。思路比较简单:public Map topicOpt(@RequestParam Long clusterId, @RequestParam S原创 2015-08-09 16:56:59 · 1786 阅读 · 0 评论 -
Kafka集群安装
目 录 第一章 初始环境准备 11.1 部署规划 11.2 JDK安装 11.3 Zookeeper安装 31.4 其他配置 31.4.1 时间同步 31.4.2 关闭防火墙 41.4.3 更改主机名 51.4.4 修改/etc/hosts 5第二章 Kafka分布式环境 72.1 安装zookeeper 72.1.1 开始安装 7原创 2015-07-28 21:44:53 · 1102 阅读 · 0 评论 -
Kafka设置系统运行日志输出路径
默认Kafka运行的时候都会通过log4j打印很多日志文件,比如server.log, controller.log, state-change.log等,而都会将其输出到$KAFKA_HOME/logs目录下,这样很不利于线上运维,因为经常容易出现打爆文件系统,一般安装的盘都比较小,而数据和日志会指定打到另一个或多个更大空间的文件pan原创 2015-07-28 14:58:28 · 22937 阅读 · 0 评论 -
Kafka文件存储机制那些事
Kafka是什么Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。1.前言一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个转载 2015-03-10 18:18:28 · 629 阅读 · 0 评论 -
The Log: What every software engineer should know about real-time data's unifying abstraction
I joined LinkedIn about six years ago at a particularly interesting time. We were just beginning to run up against the limits of our monolithic, centralized database and needed to start the transition转载 2015-03-06 11:38:48 · 1760 阅读 · 0 评论 -
监控系统Metis方案设计
监控系统Metis方案设计 一、概述对于一个业务系统而言,不同的角色关注的点会有一定差异。领导或负责人系统获取系统的SLA,系统间的相互作用,展示资源消耗情况;运维人员需要获取基础设施和服务的实时状态信息,各种软硬件错误,性能变化及性能瓶颈;开发人员需要知道系统主要性能瓶颈,经常出现的错误,便于着力解决重要问题。要满足这些需求,一套可扩展,易使用的监控系统便非常必要了。它可以对系统监控原创 2015-03-16 14:15:52 · 2738 阅读 · 0 评论 -
ClientId and groups recommendation
我们可以将每个应用的实例ID作为clientId赋值,这样出现问题可以很容易排查是来自哪台机器哪个进程导致的。 实例ID生成方法可以是IP:port(web应用)或者IP:hash(启动路径)So it just should be used in a way that works best for your own use case.Thanks Gerard !原创 2016-04-20 09:28:49 · 590 阅读 · 0 评论