首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kafka入门&介绍part1

kafka

介绍

kafka是一个分布式数据发布订阅平台。

特点

应用消息系统

概念

核心API

主题和日志

主题就是一个类别(或目录)记录哪些记录被发布。kafka主题是多订阅者,也即是一个主题可以有0个、1个或多个

消费者订阅主题的数据(即记录)。对于每个主题,kafka cluster维护一个分区日志。每个分区是一个有序的只能追加的有结构

的日志。分区的每条记录都分配一个序号(offset)来唯一标识。

分布式

地理复制

生产者

消费者

多租户

保证

快速开始

启动服务

创建主题

发送消息

消费消息

集群模式配置

启动

其他操作

通过查看topic状态可以发现topic是否复制到多节点,leader节点和follower节点等

应用场景

消息系统

kafka最常见就是应用与消息系统(解耦数据处理),相比于传统的消息系统(ActiveMQ和RabbitMQ),kafka有更高的吞吐量,

内置的分区,消息复制和容错性。一般来说消息系统的吞吐量不会很大,但是需要kafka提供强持久化来保证消息不丢失。

网站活动追踪

kafka也经常通过实时的发布订阅,重建用户活动轨迹pipeline。这意味着网页浏览、搜索和用户其他行为都会发布到中央主题,这些

可以满足实时监控,或者将数据导入hadoop出用户行为报表等。

数据统计

kafka经常用于数据统计,可以聚合来自分布式应用程序的统计数据,产生操作数据的集中式概要。

日志收集

许多开发用kafka来收集日志。日志收集通常就是收取物理日志文件然后将他们存放在一个中心系统(如文件系统、HDFS等)处理。kafka

提取日志文件的摘要,然后将摘要作为消息流发送和处理。这更好的支持低延迟处理和更容易支持多数据源、分布式数据处理。对比日志

处理系统(如Scribe、Flume),kafka提供相同的性能,更强的持久化,以及端对端更低延迟。

流式处理

kafka也可以以流式方式处理数据,原始数据由topic消费,然后聚合、增强以及转换为其他topic或者远程程序处理。比如:推荐的文章

从RSS获取,然后发布至""acticles"的主题,远端处理程序可以复制这些内容然后发布到新的主题,最终程序会将这些文章推荐给用户。

类似于上面的处理流程线可以为每一个主题创建实时的数据流。在0.10.0版本后kafka提供了kafka Streams(一个更轻量级但是更强大的

API包)。

事件源

事件源是基于应用的可以基于时间线的事件处理链,kafka支持存储很大数据级日志,可以支持它更好的做事件源处理。

提交日志

kafka也可以作为分布式系统的日志提交记录,这些日志记录可以作为结点间复制的根据,或者同步服务挂掉结点的数据等。

kafka生态

kafka生态包括流式处理系统、Hadoop集成、监控和发布等工具,可参考https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem

配置

broker配置

更多配置见http://kafka.apache.org/documentation/#brokerconfigs

broker配置更新

从1.1开始,kafka broker的部分配置可以动态修改(不重启)

动态的配置(pre-broker和cluster-wide)存放在zookeeper,静态配置存储在server.properties

密码配置

SSL配置

默认主题配置

日志配置

更新线程配置

连接配置

监听器配置

topic配置

更多配置见http://kafka.apache.org/documentation/#topicconfigs

producer配置

详见http://kafka.apache.org/documentation/#producerconfigs

consumer配置

详见http://kafka.apache.org/documentation/#consumerconfigs

connect配置

详见http://kafka.apache.org/documentation/#connectconfigs

streams配置

详见http://kafka.apache.org/documentation/#streamsconfigs

adminClient配置

详见http://kafka.apache.org/documentation/#adminclientconfigs

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190122G0D31Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券