分布式消息队列 Kafka

2016-02-25 杜亦舒

Kafka是一个高吞吐量的、分布式的消息系统,由Linkedin开发,开发语言为scala

具有高吞吐、可扩展、分布式等特点

适用场景

活动数据统计

活动数据包括页面访问量(Page View)、被查看内容方面的信息、搜索情况等内容

先以日志的形式存储,然后周期性地对这些文件进行统计分析

运营数据统计

收集服务器的性能数据(CPU、内存、IO使用率 ……),之后进行统计

Linkedin就是基于这类需求开发出了Kafka,所以kafka最适合的场景为

一个日志集群,各种服务器将它们自身的日志发送到集群中进行统一汇总和存储,然后其它机器从集群中拉取消息进行分析处理,数据挖掘

整体架构

kafka体系包括以下部分:

(1)生产者 Producer

(2)broker集群

(3)话题 Topic(可以理解为queue)

(4)消费者 Consumer

(5)Zookeeper集群

可以在Kafka中创建多个Topic,Producer向Topic中发送消息,Consumer从Topic中获取消息

为了高效的读写消息,topic都被切分为多个分区partition,放入不同的broker中

topic的partition类似于数据库的分表,可以根据消息的key进行分区

例如key为userid,可以根据userid进行分组,把不同userid段的消息放入不同的partition,提高读写性能

为了保证高可用性,每个partition都有多个备份,分别保存在不同的broker中

其中有一个partition为leader,负责读写,其余的为slave,当leader失效时,会从slave中再选举出一个leader

每个partition也不是一个独立的文件,被分为了多个片段segment

Kafka通过Zookeeper管理集群配置,选举leader

应用示例

需求

监控用户交易行为,当交易金额过大时,标识出异常

实现

转载于:https://www.cnblogs.com/jun1019/p/6260580.html

分布式消息队列 Kafka相关推荐

  1. 【中间件】大数据之分布式消息队列Kafka

    目录 Kafka设计动机 Kafka特点 Kafka设计架构 基本架构 Kafka各组件详解 Kafka关键技术点 典型应用场景       在大数据数据收集环节,需要构建数据流水线,其中一种方式可以 ...

  2. 基于Docker搭建分布式消息队列Kafka

    本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示.本例搭建的 ...

  3. 分布式消息队列kafka

    文章目录 前言 什么是Kafka? Kafka的特性 Kafka的意义 Kafka工作原理 kafka架构介绍 Producer Broker Consumer Patition Zookeeper ...

  4. 消息队列系列之分布式消息队列Kafka

    介绍 ApacheKafka®是一个分布式流媒体平台.这到底是什么意思呢? 我们认为流媒体平台具有三个关键功能: 它可以让你发布和订阅记录流.在这方面,它类似于消​​息队列或企业消息传递系统. 它允许 ...

  5. 分布式消息队列Kafka集群安装

    kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目.在它的主页描述kafka为一个高吞吐量的分布式(能将消息分散到不同的节点上)MQ.在这片博文中,作者简单提 ...

  6. Kafka 分布式消息队列介绍

    Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...

  7. 分布式消息队列 NSQ 和 Kafka 对比

    谈谈分布式消息队列的一些特性,比较两种比较常用的消息队列--NSQ和Kafka 1 消息队列的作用 解耦,将一个流程加入一层数据接口拆分成两个部分,上游专注通知,下游专注处理 缓冲,应对流量的突然上涨 ...

  8. 基于 Kafka 和 ZooKeeper 的分布式消息队列原理

    转载:https://gitbook.cn/books/5bc446269a9adf54c7ccb8bc/index.html 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量 ...

  9. 再谈基于 Kafka 和 ZooKeeper 的分布式消息队列原理

    关于分布式消息队列,我在几个月前写过一篇文章:<深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列 >.最近,由于写作课程<分布式中间件实践之路>的契机,我 ...

最新文章

  1. 学习动态性能表 第二篇--v$sesstat
  2. 【网络安全】如何搭建MySQL恶意服务器读取文件?
  3. C#微信公众号开发系列教程五(接收事件推送与消息排重)
  4. ios开发text kit_IOS开发入门之TextKit详解
  5. java 创建web项目_java – Eclipse:以编程方式创建动态Web项目
  6. OpenCV修养(三)——图像处理(上)
  7. Futureswap公布代币分配时间表,在未来3年向用户分配3000万枚FST代币
  8. testng 组_TestNG组
  9. 交叉验证与训练集、验证集、测试集
  10. Exynos4412 OV5640摄像头(一)—— 驱动
  11. 手机上微信总是说无法连接服务器错误代码,微信登录失败怎么办|微信登录失败常见提示及处理方法...
  12. Start Developing iOS Apps (Swift) 中文翻译版
  13. 奶酪巫师的黑客乐园 - 第一个进行硬分叉的区块链游戏?
  14. confluence7安全补丁_Confluence 7 伴随程序的安装
  15. 骑行318、 2016.7.29
  16. Desktop Goose for Mac(抖音网红桌面宠物鹅)最新版
  17. origin绘图软件中文版下载安装教程
  18. STM32—OLED显示屏
  19. 前端三剑客 Html Css JavaScript
  20. 微信企业支付发送到零钱

热门文章

  1. java中组合_java中组合模式详解和使用方法
  2. python -pass的用法
  3. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)
  4. 第三课《让简历有点色彩》
  5. 基本数据类型与String之间的转换
  6. nyoj164——卡特兰数(待填坑)
  7. cocos2d-x 帧动画
  8. 【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
  9. 字符串转换整形数,结构体数组排序
  10. [Ruby]$: 是什么意思?