Kafka
文章平均质量分 86
_北方的雪_
这个作者很懒,什么都没留下…
展开
-
kafka设计背景与初衷
Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家公司作为多种类型的数据管道和消息系统使用。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。原创 2017-03-09 19:20:00 · 2019 阅读 · 0 评论 -
kafka之学习框架
结合官方文档,网上资料,并结合自己的实践, kafka的学习从以下方面进行总结kafka设计背景与初衷kafka简介kafka架构Terminology概念Kafka拓扑结构kafka消息机制与同步kafka持久化原理kafka容灾机制kafka rebalance机制kafka中zookeeper的作用及节点结构kafka的应用kafka安装zoo原创 2017-03-09 19:18:45 · 987 阅读 · 0 评论 -
Kafka API8 producer
import java.util.Properties;import org.apache.log4j.Logger;import com.jd.Seckill.UdpRecv.Utils.Config;import kafka.javaapi.producer.Producer;import kafka.producer.KeyedMessage;import kafka.producer.Pr原创 2017-03-10 10:27:04 · 370 阅读 · 0 评论 -
Kafka high level API8 Consumer
import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concu原创 2017-03-10 10:24:16 · 603 阅读 · 0 评论 -
Kafka low level API8 Consumer
import java.nio.ByteBuffer;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map; import org.apache.log4j.Logger; import com.jd.S原创 2017-03-10 10:23:14 · 728 阅读 · 0 评论 -
Kafka工具的使用
获取某个topic中的某个group的消费情况可以通过以下方式获得/bin/bash kafka-consumer-offset-checker.sh --zookeeper 10.189.122.207:2181,10.189.122.208:2181,10.189.122.213:2181 --topic test_8 --group aGroup Top原创 2017-03-10 10:35:37 · 1047 阅读 · 0 评论 -
Kafka内部网络框架
Broker的内部处理流水线化,分为多个阶段来进行(SEDA),以提高吞吐量和性能,尽量避免Thead盲等待,以下为过程说明。Accept Thread负责与客户端建立连接链路,然后把Socket轮转交给Process ThreadProcess Thread负责接收请求和响应数据,Process Thread每次基于Selector事件循环,首先从Response Queue读取转载 2017-03-10 10:38:22 · 501 阅读 · 0 评论 -
Kafka的一些流程
topic创建1. controller 在 ZooKeeper 的 /brokers/topics 节点上注册 watcher,当 topic 被创建,则 controller 会通过 watch 得到该 topic 的 partition/replica 分配。2. controller从 /brokers/ids 读取当前所有可用的 broker 列表,对原创 2017-03-10 10:40:31 · 845 阅读 · 0 评论 -
常用MessageQueue及特点
常用Message Queue及特点对比RabbitMQRabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。RedisRedis是一个转载 2017-03-10 10:50:08 · 973 阅读 · 0 评论 -
kafka监控工具
在之前的博客中,介绍了Kafka Web Console这 个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者、消费者、ZooKeeper建立大量连接,从而导致网络阻塞。并且这个 Bug也在其他使用者中出现过,看来使用开源工具要慎重!该Bug暂未得到修复,不得已,只能研究下其他同类的Kafka监控软件。通过研究,发现主流的三种kafka监控程序分别为:Ka转载 2017-03-10 11:18:53 · 924 阅读 · 0 评论 -
kafka集群配置与安装
# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ow原创 2017-03-09 19:48:36 · 608 阅读 · 0 评论 -
zookeeper集群安装与配置
# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request原创 2017-03-09 19:49:59 · 309 阅读 · 0 评论 -
kafka简介
Kafka是由LinkedIn开发的一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序原创 2017-03-09 19:20:47 · 395 阅读 · 0 评论 -
kafka 名词概念
ProducerConsumerBrokerTopicPartitionConsumer Group分布式Broker Kafka集群包含一个或多个服务器,这种服务器被称为brokerTopic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic(物理上不同Topic的消息分开存储[表现于日志落地],逻辑上一原创 2017-03-09 19:24:31 · 1841 阅读 · 1 评论 -
kafka拓扑结构
如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU、Memory等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干Consumer Group,以及一个Zookeeper集群。Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer G原创 2017-03-09 19:28:32 · 1710 阅读 · 0 评论 -
kafka消息与同步机制
如上图所示:Producer根据指定的partition方法(默认round-robin、hash等),将消息发布到指定topic的partition里面;kafka集群接收到Producer发过来的消息后,将其持久化到硬盘,并保留消息指定时长(可配置),而不关注消息是否被消费;Consumer从kafka集群pull数据,并控制获取消息的offset。下面讨论以下Kafka如何确保消息在pr原创 2017-03-09 19:31:53 · 14569 阅读 · 0 评论 -
kafka持久化原理
Topic在逻辑上可以被认为是一个queue。每条消费都必须指定它的topic,可以简单理解为必须指明把这条消息放进哪个queue里。为了使得Kafka的吞吐率可以水平扩展,物理上把topic分成一个或多个partition,每个partition在物理上对应一个文件夹,该文件夹下存储这个partition的所有消息和索引文件。 每个日志文件都是“log entries”序列,原创 2017-03-09 19:34:58 · 18237 阅读 · 0 评论 -
kafka容灾机制
Kafka的消息安全性与容灾机制主要是通过副本replication的设置和leader/follower的的机制实现的。Replication机制broker 容灾机制Leader Election机制controller failoverReplication机制Kafka从0.8开始提供partition级别的r原创 2017-03-09 19:40:06 · 11575 阅读 · 0 评论 -
kafka rebalance机制
Kafka保证同一consumer group中只有一个consumer会消费某条消息,实际上,Kafka保证的是稳定状态下每一个consumer实例只会消费某一个或多个特定的数据,而某个partition的数据只会被某一个特定的consumer实例所消费。这样设计的劣势是无法让同一个consumer group里的consumer均匀消费数据,优势是每个consumer不用都跟大量的broker原创 2017-03-09 19:42:14 · 17588 阅读 · 0 评论 -
kakfa在zookeeper中的节点结构
topic注册信息 /brokers/topics/[topic] : 存储某个topic的partitions所有分配信息Schema:{ "version": "版本编号目前固定为数字1", "partitions": { "partitionId编号": [ 同步副本组brokerId列表原创 2017-03-09 19:46:48 · 1014 阅读 · 0 评论 -
kafka 版本迭代递进
3.新的ConsumerKafka 0.8.2, Producer被重新设计, Kafka 0.9则重新设计了Consumer接口。它不再区分high-level consumer API和low-level consumer API,而是提供了一个统一的consumer API。1).Kafka可以自行维护Offset、消费者的Position。也可以开发者自己来维护Offset转载 2017-03-10 10:50:52 · 1185 阅读 · 0 评论