消息中间件-Kafka讲解课件_第1页
消息中间件-Kafka讲解课件_第2页
消息中间件-Kafka讲解课件_第3页
消息中间件-Kafka讲解课件_第4页
消息中间件-Kafka讲解课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Kafka一、MQ系统二、Kafka架构三、Kafka命令四、配置文件Kafka一、MQ系统MQ系统一、Redis二、ZeroMQ三、ActiveMQ四、RocketMQ五、KafkaMQ系统一、RedisMQ系统RedisRedis是一个NoSQL数据库处理小流量的消息队列不适用于大流量的应用场景MQ系统RedisMQ系统ActiveMQActiveMQ2007年发布第一个版本(同年JDK1.5发布)被广泛应用于零售、银行、电子商务和政府等领域。稳定性好,性能还过得去。缺少异步JavaAPI和NIO支持,在高资源配置的计算机上扩展性不佳。Apollo重写了ActiveMQ内核,Apache称其为最快、最强健的STOMP(StreamingTextOrientatedMessageProtocol,流文本定向消息协议)服务器。github一年多没更新,网传Apollo项目已经失败MQ系统ActiveMQMQ系统ZeroMQ不支持序列化,阅后即焚。如果服务器宕机,数据将丢失ZeroMQ本身只是一个网络协议栈的实现库.使用过程中由应用服务器扮演服务器的角色ZeroMQ的目标是,成为Linux内核的一部分逆天的性能MQ系统ZeroMQMQ系统KafakVSRocketMQ定位Kafak:由Linkin开源,用于即时的日志传输RocketMQ:由淘宝开源,实现非日志的可靠消息传输,用于交易、订单、充值等场景TPS性能kafka单机写入TPS在百万条/秒,消息大小为10bRocketMQ单机

7万条/秒,消息大小为10b队列数kafak单机超过64个队列/分区,Load会发生明显的飙高现象RocketMQ最高支持5万队列实时性Kafka使用短轮询方式,实时性取决于轮询间隔时间RocketMQ使用长轮询,同Push方式实时性一致,消息的投递延时通常在几个毫秒。成熟度Kafka在日志领域比较成熟,操作系统Crash,会导致数据丢失RocketMQ在阿里集团内部有大量的应用在使用,不会丢消息MQ系统KafakVSRocketMQMQ系统总结MQ系统特点RedisNO-SQL数据库,适用于处理少量MQ数据ActiveMQ久经沙场的老战士,稳定性好ZeroMQ一个网络通信协议栈性能超级强劲RocketMQ阿里出品标准MQ系统中性能最好的Kafka/Jafka专为日志收集设计非标准MQ系统,容灾能力弱,性能超过RocketMQ消息处理速度上限大约为100MB/sMQ系统总结MQ系统特点RedisNO-SQL数据库,ActKafka架构系统结构kafkaclusterBroker1Broker2Broker3Producer-AProducer-BProducer-CConsumer-AConsumer-AConsumer-CZookeeper基础架构Kafka架构系统结构kafkaclusterBrokeKafka架构基本概念主题:topic分区:partition消息:message生产者:producer消费者:consumergroup消息队列:brokerProducerTopicConsumerGroupPartitionConsumer11..N11..NKafka架构基本概念ProducerTopicConsuKafka架构kafka消息流程图topic消息队列Producer-AProducer-BConsumerconsumergrouppartitionproducer本地磁盘注1:消息队列依赖于本地磁盘注2:默认情况下,磁盘存储会保存7天Kafka架构kafka消息流程图topic消息队列PrKafka架构kafka消息流程图topic消息队列Producer-AProducer-BConsumerconsumergrouppartitionproducer本地磁盘1本地磁盘2注1:在一个由6个7200rpm的SATA硬盘组成的RAID-5磁盘阵列上,线性写入的速度大约是300MB/秒,随机写入却只有50k/秒。注2:在某些情况下,顺序磁盘访问能够比【随机】内存访问还要快!Kafka架构kafka消息流程图topic消息队列PrKafka架构kafka集群运行流程图broker(1)broker(2)topic13741282109611Producer-AProducer-BConsumer-AConsumer-BConsumer-Cconsumergrouppartition1partition2partition3producerKafka架构kafka集群运行流程图broker(1)Kafka架构topic&partitiontopicbroker(1)13741282broker(2)109611Producer-AProducer-BConsumer-AConsumer-BConsumer-Cconsumergrouppartition1partition2partition3producerproducer怎么保证业务有序?1、每个partition对应一个文件(夹)2、分文件存储利于增加topic消息容量3、把partition放在不同磁盘上,可以提高读写性能4、把partition分散在不同机器上,支持负载均衡5、通过迁移单个partition,实现快速水平扩展6、partition内有序,partition间无序Kafka架构topic&partitiontopicKafka架构producertopicbroker(1)13741282broker(2)109611Producer-AProducer-BConsumer-AConsumer-BConsumer-Cconsumergrouppartition1partition2partition3producerconsumer处理速度跟不上怎么办?1、自定义partitioner,保证同族消息保存在相同partition中,默认为hash算法随机分配2、异步提交时,会把多个消息合并,提高IO性能3、如果对topic进行水平扩容,producer需要重新获取broker列表,重新连接Kafka架构producertopicbroker(1)Kafka架构consumertopicbroker(1)13741282broker(2)109611Producer-AProducer-BConsumer-AConsumer-BConsumer-Cconsumergrouppartition1partition2partition3producer不同的consumerGroup之间有什么关系?Thread-AThread-BThread-C1、一个partition只会被一个consumer线程连接;2、一个consumergroup由多个consumer线程组成;3、一个consumergroup可以同时被多个进程使用。Kafka架构consumertopicbroker(1)Kafka架构consumergroup注:GroupA和GroupB会收到的是完全相同的消息Kafka架构consumergroup注:GroupKafka架构kafka在zookeeper中的数据Kafka架构kafka在zookeeper中的数据Kafka命令数据分区和水平扩展1、创建一个16分区,双备的topic

./bin/kafka-topics.sh--create\--zookeeper10.100.10.200:2181\--replication-factor2

\--partitions16--topicmy-topic

\2、水平扩展./bin/kafka-reassign-partitions.sh--execute\--manual-assignment-json-filepartitions-to-move.json

catpartitions-to-move.json:{"partitions":[{"topic":"my-topic","partition":1,"replicas":[1,4]}]}把一个partition的replica从broker1,2迁移到broker1,4上Kafka命令数据分区和水平扩展把一个partition的配置文件producer配置文件producer配置文件consumer配置文件consumer配置文件broker配置文件brokerKafka性能报告(A)<1k,8K条/秒>Kafka性能报告(A)<1k,8K条/秒>Kafka性能报告(B)<1k,83MB/s>Kafka性能报告(B)<1k,83MB/s>Q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论