kafka初步认识

kafka 使用背景

在我们大量使用分布式数据库、分布式计算机集群的时候,是否遇到这样的一些问题:

  • 我们想分析下用户的行为(pageviews),以便能设计出更好的广告位;
  • 我想对用户的搜索关键词进行统计,分析出前的流行趋势;
  • 有些数据直接存数据库浪费,存硬盘操作效率比较低;
  • 这时候就可以用消息系统,尤其是分布式消息系统;

kafka定义:是一个分布式消息系统,由Linkedln使用Scala编写,用于Linkedln的活动流(Activity Stream) 和运营数据处理管道(Pipeline)的基础具有高水平扩展性和吞吐量。

应用领域:已被多加不同的公司作为多种类型的数据管道和消息系统使用,淘宝,支付宝,百度等;目前越来越多的开源分布式处理系统Apache flume、Apache Strom、Spark、elasticsearch都与kafka集成。

  • 目前用的比较多的开源分布式消息系统 如下:

这里写图片描述

kafka 相关概念

  • AMQP 协议

这里写图片描述

  • 一些基本的概念
    a)消费者(Consumer) : 从消息队列中请求消息的客户端应用程序;
    b)生产者(Producer) : 向broker发布消息的客户端应用程序;
    c)AMQP服务器(broker) : 用来接收生产者发布的消息并将这些消息路由给服务器中的队列;

  • Kafka支持的客户端语言

kafka 客户端支持当前的大部分主流语言,包括:C、C++、Erlang、java、.net、Perl、PHP、Python、Ruby、Go、javaScript。可以使用以上任意一种语言与Kafka服务器进行通信(即编写自己的consumer和Producer程序)

  • Kafka 结构

这里写图片描述

  • 一些基本概念:

    a) 主题(Topic) : 一个主题类型新闻中的体育、娱乐、教育等分类概念,在实际工程中通常一个业务一个主题;
    b) 分区(Partition) : 一个Topic中的消息数据按照多个分区组织,分区是kafka消息队列组织的最小单位,一个分区可以看做是FLFO的队列;

这里写图片描述

kafka介绍完毕,此文仅作为学习笔记,仅供学习参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值