前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式消息队列 Kafka

分布式消息队列 Kafka

作者头像
dys
发布2018-04-03 16:36:23
1.7K0
发布2018-04-03 16:36:23
举报
文章被收录于专栏:性能与架构性能与架构

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

应用示例

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档