博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式消息队列 Kafka
阅读量:6582 次
发布时间:2019-06-24

本文共 848 字,大约阅读时间需要 2 分钟。

分布式消息队列 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

应用示例

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

转载地址:http://kixno.baihongyu.com/

你可能感兴趣的文章
教你给IDEA安装插件
查看>>
隐蔽可扩展PHP Webshell – Weevely 1.0
查看>>
如何让Yii框架支持多个数据库
查看>>
用函数指针读取并调用虚函数表指向的每个函数
查看>>
Mysql查询ip段
查看>>
办公小贴士之:在Outlook 2010中添加农历生日
查看>>
我的友情链接
查看>>
ActionScript 3.0游戏编程——创建简单的ActionScript程序
查看>>
函数const
查看>>
物体间通信-deletgate
查看>>
关于“Return empty arrays or collections, not nulls”的思考
查看>>
Activiti学习(一) 环境搭建
查看>>
尼姆博弈(二)
查看>>
angular-cli 安装
查看>>
css高斯模糊背景,使用filter!
查看>>
Handler 原理分析和使用(一)
查看>>
异常处理
查看>>
杭电2001——计算两点间的距离
查看>>
实现简单点赞功能
查看>>
HTTP协议详解
查看>>