zoukankan      html  css  js  c++  java
  • kafka简介


    kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中所有动作流数据。这种动作(网页浏览、搜索和其他用户的行动)是现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
    kafka名词解释
    producer:生产者
    consumer:消费者
    topic: 消息以topic为类别记录,Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic)
    broker:以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker;消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息
    kafka有四个核心API介绍
    应用程序使用producer API发布消息到1个或多个topic中
    应用程序使用consumer API来订阅一个或多个topic,并处理产生的消息
    应用程序使用streams API充当一个流处理器,从1个或多个topic消费输入流,并产生一个输出流到1个或多个topic,有效地将输入流转换到输出流
    connector API允许构建或运行可重复使用的生产者或消费者,将topic链接到现有的应用程序或数据系统

    kafka基本原理
    通常来讲,消息模型可以分为两种:队列和发布-订阅式。队列的处理方式是一组消费者从服务器读取消息,一条消息只有其中的一个消费者来处理。在发布-订阅模型中,消息被广播给所有的消费者,接收到消息的消费者都可以处理此消息。Kafka为这两种模型提供了单一的消费者抽象模型: 消费者组(consumer group)。消费者用一个消费者组名标记自己。一个发布在Topic上消息被分发给此消费者组中的一个消费者。假如所有的消费者都在一个组中,那么这就变成了队列模型。假如所有的消费者都在不同的组中,那么就完全变成了发布-订阅模型。更通用的, 我们可以创建一些消费者组作为逻辑上的订阅者。每个组包含数目不等的消费者,一个组内多个消费者可以用来扩展性能和容错。

  • 相关阅读:
    第十五周学习进度
    梦断代码阅读笔记03
    第二阶段绩效评估
    团队十日冲刺20
    团队十日冲刺19
    团队十日冲刺18
    Java中的变量之成员变量、本地变量与类变量
    Java中new一个对象是一个怎样的过程?JVM中发生了什么?
    HashMap三百问
    容器之List接口下各实现类(Vector,ArrayList 和LinkedList)的线程安全问题
  • 原文地址:https://www.cnblogs.com/kxm87/p/9907553.html
Copyright © 2011-2022 走看看