高新能KAfKA之基础篇01

前言

kafka是最初由Linkedin公司开发,是一个分布式、支持分区的、多副本的,给予zookeeper协调的分布式消息系统,它的最大特性就是可以实时的处理大量数据以满足各种需求场景:比如给予Hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等 等,用scala语言编写。Linkedin于2010年贡献给了Apache基金会并称为顶级开源项目。

使用场景:

1.日志收集:收集各种服务的log,通过kafka以统一的几口服务的方式开放给各种consumer。

2.消息系统:解耦和生产者和消费者、缓存消息等。

3.用户活动跟踪:kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装在到Hadoop、数据仓库中做离线分析和挖掘

4.运营指标:kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。

kafka传统定义
  • kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。
  • 发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。
  • kafka最新定义:kafka是一个开元的分布式事件流平台,被数千家公司用于高新能数据管道、流分析、数据集成、和关键人物应用
  • 消息队列的应用场景:缓存/消峰、解耦和异步通信
什么是MQ:

消息队列中间件,MQ通过将消息的发送和接收分离来实现应用程序的异步解耦,这个给人的直觉是MQ是异步的,用来解耦的, 但是这个只是MQ的想法,而不是目的,MQ真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的更加简单的通讯协议。MQ所要做的就是在这些协议(http、TCP)之上构建一个简单的“协议”--生产者/消费者模型。

消息队列的两种模式:
  • 点对点模式(单播消息),消费者主动拉取数据,消息收到后清除消息

  • 发布/订阅模式(多播消息):
    • 可以有多个topic主题(浏览、点赞、收藏、评论等)
    • 消费者消费数据之后,不删除数据
    • 每个消费者相互独立,都可以消费到数据

kafka基础架构
  • 为方便扩展,并提高吞吐量,一个topic分为多个partition
  • 配合分区的设计,提出消费者组的概念,组内每个消费者并行消费,但是相同消费组中的消费者,不能同时读取同一分区的数据,会造成数据重复
  • 为提高可用性,为每个partition增加若干副本(备份 )
  • zookeeper中会进行记录谁是Leader,Kafka2.8.0以后可以配置不采用zookeeper

kafka基本概念:

kafka是一个分布式的,分区的消息(官方称之为commit log) 服务。它提供一个消息系统应该具备的功能,但是确有事独特的设计。可以这样来说,kafka借鉴了JMS规范的思想,但是确并没有完全遵循JMS规范。

相关术语

 broker可以理解为就是我们的集群节点,每一个集群节点中通过topic(主题)对数据进行分组,一个broker可以存在多个主题,主题中的数据为了提高读写性,所以对数据分开操作就有了分区,就是将一个主题中的数据分为多个块存放。

  • 主题:主题-topic在kafka中是一个逻辑的概念,kafka通过topic将消息进行分类、不同的topic会被订阅该topic的消费者消费。但是有一个问题,如果说这个topic中的消息非常非常多,多到需要几个T来存储,应为消息时会被保存到log日志文件中的.为了解决这个文件过大的问题,kafka提出了Partition分区的概念。
  • 分区:通过partition将一个topic中的消息分区来存储。这样做的好处是:分区存储,可以解决统一存储文件过大问题
    • 提供了读写的吞吐量:读写可以同时在多个分区中进行
  • 副本:那么为了增加数据的可靠性,防止数据丢失,会给数据做一个备份称之为副本,副本分为两种:Leader和follower,无论是生产者还是消费者,都只会去操作Leader。

以上就是基于对kafka的定义和简单基本概念的了解,下一篇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值