partition

带你逆袭kafka之路

别说谁变了你拦得住时间么 提交于 2020-03-09 13:02:16
1. kafka概述 1.1 kafka简介 Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点,较之传统的消息中 间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容 错的特性,非常适合大规模消息处理应用程序。 Kafka 官网: http://kafka.apache.org/ Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。 同时支持离线数据处理和实时数据处理。 支持在线水平扩展 Kafka通常用于两大类应用程序: 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据 构建实时流应用程序,以转换或响应数据流 要了解Kafka如何执行这些操作,让我们从头开始深入研究Kafka的功能。 首先几个概念: Kafka在一个或多个可以跨越多个数据中心的服务器上作为集群运行。 Kafka集群将 记录 流存储在称为 主题的 类别中。 每个记录由一个键

RocketMQ与kafka的区别

纵然是瞬间 提交于 2020-03-08 11:19:31
一、前言 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用MySQL作为消息存储媒介,支持水平扩容。为了进一步降低成本,阿里中间件团队认为Notify可进一步优化。 2011年初,Linkedin开源了kafka, 阿里中间件团队在对kafka做了充分的review之后,被kafka的无限消息堆积能力、高效的持久化速度深深吸引,但同时发现kafka主要定位于日志传输,对于使用在淘宝交易、订单、充值等场景下,还有若干特性不满足。因此,阿里中间件团队基于Java重新编写了RocketMQ,定位于不仅限于日志场景的可靠消息传输。 目前,RocketMQ在阿里集团被广泛应用于订单、充值、交易、流计算、消息推送、日志流式处理、binlog分发等场景。 二、RocketMQ与kafka的不同 1、数据可靠性 RocketMQ:支持异步实时刷盘、同步刷盘、同步复制、异步复制。 kafka:使用异步刷盘方式,异步复制/同步复制。 总结: 1、RocketMQ支持kafka所不具备的“同步刷盘”功能,在单机可靠性上比kafka更高,不会因为操作系统Crash而导致数据丢失。 2、kafka的同步replication理论上性能低于RocketMQ的replication,这是因为kafka的数据以partition为单位,这样一个kafka实例上可能多上百个partition

Kafka如何保证消息的高可用

孤街醉人 提交于 2020-03-08 05:27:32
一、术语 1.1 Broker Kafka 集群包含一个或多个服务器,服务器节点称为broker。 broker存储topic的数据。 如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。 如果某topic有N个partition,集群有(N+M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。 如果某topic有N个partition,集群中broker数目少于N个,那么一个broker存储该topic的一个或多个partition。 在实际生产环境中,尽量避免这种情况的发生,这种情况容易导致Kafka集群数据不均衡。 1.2 Topic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。 1.3 Partition topic中的数据分割为一个或多个partition。 partition中的数据是有序的,不同partition间的数据丢失了数据的顺序。如果topic有多个partition,消费数据时就不能保证数据的顺序。 在需要严格保证消息的消费顺序的场景下,需要将partition数目设为1。或者需要保证 按业务类型 顺序 消费 的情况,则按业务类型发到同一分区

macbook 安装 ubuntu

半世苍凉 提交于 2020-03-07 07:07:47
Installing Windows on your Mac is easy with Boot Camp , but Boot Camp won’t help you install Linux. You’ll have to get your hands a bit dirtier to install and dual-boot a Linux distribution like Ubuntu. If you just want to try Linux on your Mac, you can boot from a live CD or USB drive. Insert the live Linux media, restart your Mac, press and hold the Option key, and select the Linux media on the Startup Manager screen. We installed Ubuntu 14.04 LTS to test this process. Install rEFInd RELATED: How to Install Windows on a Mac With Boot Camp rEFInd is a boot manager that will allow you to

MYSQL--表分区、查看分区

我的未来我决定 提交于 2020-03-06 08:20:01
一、 mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全是透明的。 MYSQL的分区主要有两种形式:水平分区和垂直分区 水平分区(HorizontalPartitioning) 这种形式的分区是对根据表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。 所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。水平分区一定要通过某个属性列来分割。常见的比如年份,日期等。 垂直分区(VerticalPartitioning) 这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应所有行。 可以用 showvariables like '%partition%'; 命令查询当前的mysql数据库版本是否支持分区。 分区的作用:数据库性能的提升和简化数据管理 在扫描操作中,mysql优化器只扫描保护数据的那个分区以减少扫描范围获得性能的提高。 分区技术使得数据管理变得简单,删除某个分区不会对另外的分区造成影响,分区有系统直接管理不用手工干预。 mysql从5.1版本开始支持分区

Linux之df命令

流过昼夜 提交于 2020-03-06 01:05:11
Linux之df命令 以下仅为本人工作、学习过程中所接触到的内容,不足之处请多包涵。 简介 df是disk free的缩写,用来检查Linux系统的磁盘空间占用的情况。由于 df 主要读取的数据几乎都是针对一整个文件系统,因此读取的范围主要是在 Superblock 内的信息, 所以这个指令显示结果的速度非常快。在显示的结果中需要特别留意的是根目录的剩余容量,因为我们所有的数据都是由根目录衍生出来的,因此当根目录的剩余容量为 0 时,Linux 可能就问题很大了。 Filesystem:代表该文件系统是在哪个 partition。 1k-blocks:说明底下癿数字单位是 1KB。 Mounted on:就是磁盘挂载癿目彔。 语法 df [-ahikHTm] [目录或文件名] 参数 -a 列出所有的文件系统,包括系统特有的/proc 等文件系统 -k 以 KBytes 的容量显示各文件系统 -m 以 MBytes 的容量显示各文件系统 -h 以人们较易阅读的GBytes, MBytes, KBytes 等格式自行显示 -H 与-h 参数相同,但在计算时是以 1000 Bytes 为换算单位而非1024 Bytes -T 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出 -i 不用硬盘容量,而以 inode 的数量来显示 实例

kafka概念扫盲

左心房为你撑大大i 提交于 2020-03-05 23:42:47
一、kafka概述 1.1、定义 Kakfa是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据的实时处理领域 1.2、消息队列 1.2.1、传统的消息队列&新式的消息队列的模式 上面是传统的消息队列,比如一个用户要注册信息,当用户信息写入数据库后,后面还有一些其他流程,比如发送短信,则需要等这些流程处理完成后,在返回给用户 而新式的队列是,比如一个用户注册信息,数据直接丢进数据库,就直接返回给用户成功 1.2.2、使用消息队列的好处 A、 解耦 B、 可恢复性 C、 缓冲 D、 灵活性&峰值处理能力 E、 异步通信 1.2.3、消息队列的模式 A、点对点模式 消息生产者发送消息到消息队列中,然后消息消费者从队列中取出并且消费消息,消息被消费后,队列中不在存储。所以消息消费者不可能消费到已经被消费的消息;队列支持存在多个消费者,但是对于一个消息而言,只会 有一个消费者可以消费;如果想发给多个消费者,则需要多次发送该条消息 B】发布/订阅模式(一对多,消费者消费数据之后不会清除消息) 消息生产者将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息,和点对点的方式不同,发布到topic的消息会被所有的订阅者消费;但是数据保留是期限的,默认是7天,因为他不是存储系统;kafka就是这种模式的;有两种方式,一种是是消费者去主动去消费(拉取

Kafka学习笔记1 Kafka简介

帅比萌擦擦* 提交于 2020-03-05 09:48:09
正文 回到顶部 一、简介 1.1 概述 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 主要应用场景是:日志收集系统和消息系统。 Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。 同时支持离线数据处理和实时数据处理。 Scale out:支持在线水平扩展 1.2 消息系统介绍 一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式: 点对点传递模式、发布-订阅模式 。大部分的消息系统选用发布-订阅模式。 Kafka就是一种发布-订阅模式 。 1.3 点对点消息传递模式 在点对点消息系统中,消息持久化到一个队列中。此时

kafka入门

老子叫甜甜 提交于 2020-03-04 03:17:42
目录 一.kafka简介 kafka定义 消息队列 与传统消息队列的对比 kafka特点 二.kafka架构与功能 kafka拓扑结构图 消息发布和读取的两种模式 Kafka Topics Kafka Partition副本 Kafka Logs 稀疏存储 Kafka Log Cleanup 消息保障 消息传输 Kafka Cluster Mirroring 三.kafka关键流程 写流程 读流程 一.kafka简介 1.kafka定义 Kafka 是一个高吞吐、分布式、基于发布订阅的消息系统。 2.消息队列 Kafka是一个消息队列: 消息队列: 同步队列:两个服务端必须同时在线才能通信 异步队列:两个服务端不一定要同时在线就可以进行通信 3.与传统消息队列的对比 传统的消息队列: 大多是基于内存做的处理 如果队列当中的消息被消费了就会清除。 消息的发布和消费必须是同步的。 kafka: 基于磁盘做的处理 消费者可以对消息做多次订阅 消息的发布和消费可以是异步的 4.kafka特点 解耦:发布和订阅不需要同时在线 可恢复:一部分组件失效时,对整个系统的运行不影响 冗余:存在数据副本(磁盘中),可以对数据在有效期内进行持久化 调整峰值(缓冲):防止服务器和客户端收发速度不一致造成系统崩溃(消息太多消费者处理不过来,可以先放着) 灵活性:在线和下线之间灵活转换 二

什么是Kafka?

跟風遠走 提交于 2020-03-03 21:45:05
什么是Kafka? 通过Kafka的快速入门 https://www.cnblogs.com/tree1123/p/11150927.html 能了解到Kafka的基本部署,使用,但他和其他的消息中间件有什么不同呢? Kafka的基本原理,术语,版本等等都是怎么样的?到底什么是Kafka呢? 一、Kafka简介 http://kafka.apache.org/intro 2011年,LinkIn开源, November 1, 2017 1.0版本发布 July 30, 2018 2.0版本发布 参考官网的图: Kafka®用于构建实时数据管道和流式应用程序。它具有水平可扩展性、容错性、速度极快,并在数千家公司投入生产。 kafka官网最新的定义:Apache Kafka® is a distributed streaming platform 也就是分布式流式平台。 介绍: 三个特点: Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system. Store streams of records in a fault-tolerant durable way. Process streams of records as they