消息中间件之Kafka

上传人:我*** 文档编号:137544482 上传时间:2020-07-09 格式:PPT 页数:25 大小:1.24MB
返回 下载 相关 举报
消息中间件之Kafka_第1页
第1页 / 共25页
消息中间件之Kafka_第2页
第2页 / 共25页
消息中间件之Kafka_第3页
第3页 / 共25页
消息中间件之Kafka_第4页
第4页 / 共25页
消息中间件之Kafka_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《消息中间件之Kafka》由会员分享,可在线阅读,更多相关《消息中间件之Kafka(25页珍藏版)》请在金锄头文库上搜索。

1、云软件组 陈修恒,消息中间件 之 kafka,Kafka,一、MQ 系统 二、Kafka 架构 三、Kafka 命令 四、配置文件,MQ 系统,一、Redis 二、ZeroMQ 三、ActiveMQ 四、RocketMQ 五、Kafka,MQ系统,Redis Redis是一个NoSQL数据库 处理小流量的消息队列 不适用于大流量的应用场景,MQ系统,ActiveMQ ActiveMQ 2007 年发布第一个版本(同年 JDK1.5发布) 被广泛应用于零售、银行、电子商务和政府等领域。 稳定性好,性能还过得去。 缺少异步 Java API 和 NIO支持,在高资源配置的计算机上扩展性不佳。 Ap

2、ollo 重写了 ActiveMQ 内核, Apache称其为最快、最强健的STOMP(Streaming Text Orientated Message Protocol,流文本定向消息协议)服务器。 github 一年多没更新,网传 Apollo项目已经失败,MQ系统,ZeroMQ 不支持序列化,阅后即焚。如果服务器宕机,数据将丢失 ZeroMQ本身只是一个网络协议栈的实现库.使用过程中由应用服务器扮演服务器的角色 ZeroMQ的目标是,成为 Linux 内核的一部分 逆天的性能,MQ系统,Kafak VS RocketMQ 定位 Kafak:由 Linkin 开源,用于即时的日志传输 R

3、ocketMQ:由淘宝开源,实现非日志的可靠消息传输,用于交易、订单、充值等场景 TPS 性能 kafka 单机写入 TPS 在百万条/秒,消息大小为10b RocketMQ 单机 7万条/秒,消息大小为10b 队列数 kafak 单机超过 64个队列/分区,Load 会发生明显的飙高现象 RocketMQ 最高支持 5万队列 实时性 Kafka使用短轮询方式,实时性取决于轮询间隔时间 RocketMQ使用长轮询,同Push方式实时性一致,消息的投递延时通常在几个毫秒。 成熟度 Kafka在日志领域比较成熟,操作系统Crash,会导致数据丢失 RocketMQ在阿里集团内部有大量的应用在使用,

4、不会丢消息,MQ系统,总结,Kafka 架构,系统结构,kafka cluster,Broker 1,Broker 2,Broker 3,Producer-A,Producer-B,Producer-C,Consumer-A,Consumer-A,Consumer-C,Zookeeper,基础架构,Kafka 架构,基本概念 主题:topic 分区:partition 消息:message 生产者:producer 消费者:consumer group 消息队列:broker,Kafka 架构,kafka 消息流程图,topic,消息队列,Producer-A,Producer-B,Consu

5、mer,consumer group,partition,producer,注1:消息队列依赖于本地磁盘 注2:默认情况下,磁盘存储会保存 7 天,Kafka 架构,kafka 消息流程图,topic,消息队列,Producer-A,Producer-B,Consumer,consumer group,partition,producer,注1:在一个由6个7200rpm的SATA硬盘组成的RAID-5磁盘阵列上, 线性写入的速度大约是300MB/秒,随机写入却只有50k/秒。 注2:在某些情况下,顺序磁盘访问能够比【随机】内存访问还要快!,Kafka 架构,kafka 集群运行流程图,top

6、ic,Producer-A,Producer-B,Consumer-A,Consumer-B,Consumer-C,consumer group,partition 1,partition 2,partition 3,producer,Kafka 架构,topic & partition,producer 怎么保证业务有序?,1、每个 partition 对应一个文件(夹) 2、分文件存储利于增加 topic 消息容量 3、把 partition 放在不同磁盘上,可以提高读写性能 4、把 partition 分散在不同机器上,支持负载均衡 5、通过迁移单个 partition, 实现快速水平扩

7、展 6、partition内有序,partition间无序,Kafka 架构,producer,consumer 处理速度跟不上怎么办?,1、自定义 partitioner, 保证同族消息保存在相同 partition 中,默认为 hash 算法随机分配 2、异步提交时,会把多个消息合并,提高IO性能 3、如果对 topic 进行水平扩容,producer 需要重新获取 broker 列表,重新连接,Kafka 架构,consumer,不同的 consumer Group 之间有什么关系?,1、一个 partition 只会被一个 consumer 线程连接; 2、一个 consumer gr

8、oup 由多个 consumer 线程组成; 3、一个 consumer group 可以同时被多个进程使用。,Kafka 架构,consumer group,注:Group A 和 Group B 会收到的是完全相同的消息,Kafka 架构,kafka 在 zookeeper 中的数据,Kafka 命令,数据分区和水平扩展 1、创建一个 16 分区,双备的 topic ./bin/kafka-topics.sh -create -zookeeper 10.100.10.200:2181 -replication-factor 2 -partitions 16 -topic my-topic

9、2、水平扩展 ./bin/kafka-reassign-partitions.sh -execute -manual-assignment-json-file partitions-to-move.json cat partitions-to-move.json: partitions: topic: my-topic, partition: 1, replicas: 1,4 ,把一个partition的replica从broker 1,2 迁移到 broker 1,4上,配置文件,producer,配置文件,consumer,配置文件,broker,Kafka 性能报告(A),Kafka 性能报告(B),Q & A,提问答疑,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号