分布式消息队列 Kafka
分布式消息队列 Kafka
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
应用示例
需求
监控用户交易行为,当交易金额过大时,标识出异常
实现
分布式消息队列 Kafka的更多相关文章
- 基于Docker搭建分布式消息队列Kafka
本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示.本例搭建的 ...
- Kafka 消息队列系列之分布式消息队列Kafka
介绍 ApacheKafka®是一个分布式流媒体平台.这到底是什么意思呢?我们认为流媒体平台具有三个关键功能:它可以让你发布和订阅记录流.在这方面,它类似于消息队列或企业消息传递系统.它允许您以容 ...
- 分布式消息队列kafka
下载地址:http://kafka.apache.org/downloads.html 先启动zookeeper服务器 bin/zookeeper-server-start.sh config/zoo ...
- 分布式消息队列kafka系列介绍 — 核心API介绍及实例
原文地址:http://www.inter12.org/archives/834 一 PRODUCER的API 1.Producer的创建,依赖于ProducerConfig public Produ ...
- 【转】快速理解Kafka分布式消息队列框架
from:http://blog.csdn.net/colorant/article/details/12081909 快速理解Kafka分布式消息队列框架 标签: kafkamessage que ...
- Kafka 分布式消息队列介绍
Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...
- Kafka分布式消息队列
基本架构 Kafka分布式消息队列的作用: 解耦:将消息生产阶段和处理阶段拆分开,两个阶段互相独立各自实现自己的处理逻辑,通过Kafka提供的消息写入和消费接口实现对消息的连接处理.降低开发复杂度,提 ...
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异
分布式消息服务 Kafka 是一个高吞吐.高可用的消息中间件服务,适用于构建实时数据管道.流式数据处理.第三方解耦.流量削峰去谷等场景,具有大规模.高可靠.高并发访问.可扩展且完全托管的特点,是分布式 ...
- 深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件. 本场 Chat 主要内容: Kafk ...
随机推荐
- 通过代码获取res里生成R.java中的值
引用:http://my.eoe.cn/blue_rain/archive/552.html 有的时候我们生成库文件,需要在里面加入一些UI,并提供出一些xml的资源,那如何在其他项目中使用呢? 我们 ...
- MySQL免安装的配置
①:下载并获取解压路径: ②:修改 my-default.ini: ③:管理员身份进入cmd,并cd到上面的路径(否则发生错误2,找不到文件): ④:忘记ROOT密码如何重置:
- 技巧分享:解决Word 2010当中“分页符”造成的空白行
技巧分享:解决Word 2010当中“分页符”造成的空白行 P1:关于“分页符” 在Word当中插入“分页符”之后,后面的内容就会“更起一段”.就好像“换行符”(回车)会让后面的内容“另起一行”一样. ...
- 51单片机tea5767收音机 红外遥控 自动搜台 存台 DIY
先看效果图: 显示 频道CH , 频率 100.0Mhz 欢迎信息,1602 内置日文平假名, 正好用来显示博主名称. 焊接前,已经万能面包板上试验成功. 焊接完成以后,1602 的D0 - D7 接 ...
- Vitrualbox虚拟机网络设置
来自http://www.douban.com/group/topic/15558388/ VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT,Netwo ...
- socket网络编程
一.客户端/服务器架构 C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(Web服务) 最常用的软件服务器就是Web服务器,一台机器里放了一些网页或Web应用程序,然后启动服务,这样 ...
- MySQL字段类型详解
MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...
- discuz教程:discuz模板js与jQuery冲突的解决方案
今天在做discuz模板的时候,用到jquery的时候和原来主题js冲突.这个主要是Discuz X使用了$(id)作为dom节点的获取方法,而$符号刚好与jQuery的默认符号相冲突. 以下是基于之 ...
- 【jQuery】【转】jQuery中的trigger和triggerHandler区别
trigger(event, [data]) 在每一个匹配的元素上触发某类事件. 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit',则同样会导致浏览器 ...
- [翻译]lithium 安装
安装 要求 web服务器 你需要一个web服务器来运行你的应用,最好是可以运行在你的本地机器上(你所有的开发不是都在这上面做的吗,不是吗?不是吗?).对于PHP而言,框架在很多web服务器上都运行的很 ...