kafka、hive、mysql、redis、hbase架构笔记

kafka

介绍

kafka是一个分布式流平台。

设计

①可跨越多个数据中心作为集群运行
②将记录流存储在topic中
③每个记录由一个键、一个值、一个时间戳组成

特点

①允许应用程序发布的记录流到多个topic
②应用程序可订阅多个topic,并处理他们
③应用程序可充当流处理器,消费数据并生产数据到topic
④生产者、消费者可重复使用
⑤管理和检查topic
在这里插入图片描述

主题和日志

①每个topic可以有0、1、n个消费者去消费他
②topic的每个分区都是一个有序的队列,这些记录连续的附加到日志中
③可配置记录保存时间,在超过期限后,记录则被丢弃,不管他有没有被消费
④消费者保留的唯一元数据是他在日志中的偏移量(位置),可设置消费最新、从头开始、从现在开始
在这里插入图片描述
在这里插入图片描述

生产者

将数据发布到他们选择的主题,并将记录指配给topic的某个分区。指定方式:①简单的循环方式 ②根据某些语义某些键

消费者

①消费者组是逻辑上的一个订阅者
在这里插入图片描述

名词

①Producer :消息生产者,就是向kafka broker发消息的客户端;
②Consumer :消息消费者,向kafka broker取消息的客户端;
③Consumer Group (CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
④Broker :一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
⑤Topic :可以理解为一个队列,生产者和消费者面向的都是一个topic;
⑥Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列;
⑦Replica:副本,为保证集群中的某个节点发生故障时,该节点上的partition数据不丢失,且kafka仍然能够继续工作,kafka提供了副本机制,一个topic的每个分区都有若干个副本,一个leader和若干个follower。
⑧leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是leader。
⑨follower:每个分区多个副本中的“从”,实时从leader中同步数据,保持和leader数据的同步。leader发生故障时,某个follower会成为新的leader。


hive

架构

在这里插入图片描述

运行机制

在这里插入图片描述

mysql

mysql逻辑架构

在这里插入图片描述

redis

转载自:https://mp.weixin.qq.com/s/XJzu8yyVYZYmcOui_xXnvw

概念

非关系型键值对数据库,遵循BSD协议、支持网络、可基于内存、可持久化的日志型、键值对的数据库。

持久化

把数据从内存写到磁盘中,防止内存数据丢失
方式
①RDB:写入磁盘中的RDB文件(默认方式)。性能更好
②AOF:只追加到磁盘中的AOF文件。更安全
存储结构遵循RESP协议:是一种客户端和服务端之间的通讯协议,特点是①实现简单 ②快速解析 ③可读性好

架构

单机版:使用简单,容量有限,无法高可用
在这里插入图片描述

主从复制(伪分布):在一台服务器创建多个redis节点,降低了读压力,但没有解决写压力,不能保证高可用
在这里插入图片描述
哨兵:sentinels是一个分布式监控redis主从服务器的系统。具有监控、提醒、故障自动转移功能。但没有解决master的写压力
在这里插入图片描述
集群(proxy型):在client和Master间有防火墙,故障转移方案需要自行配置
集群(直连型):无中心结构,redis服务器间彼此连接和复制

hbase

架构

在这里插入图片描述

MySQL是一种关系型数据库,用于存储结构化数据。它使用SQL语言来管理和操作数据,支持多种数据类型,包括数字、字符串、日期、时间等等。MySQL最常用于Web应用程序,例如内容管理系统(CMS)、博客、电子商务网站等。 Hive是一种基于Hadoop的数据仓库,它使用SQL类似的查询语言来查询和分析大规模的数据集。Hive将查询转换为MapReduce任务,以便在Hadoop集群上并行执行。Hive支持多种数据格式,包括文本、序列化、ORC等。 Kafka是一个高吞吐量的分布式消息系统。它使用发布/订阅模式,可以处理大量的实时数据流,例如日志、传感器数据等。Kafka具有高可用性、可扩展性和可靠性。 Redis是一种内存数据库,用于存储和管理键值对。它支持多种数据结构,例如字符串、哈希表、列表、集合等。Redis非常快速,可用于缓存数据、会话管理、队列等。 ES(Elasticsearch)是一种开源搜索引擎,用于全文搜索和分析。它可以处理大量数据、支持实时查询和聚合,并提供可视化的仪表板。ES使用分布式架构,可以在多个节点上进行水平扩展。 HBase是一个分布式的NoSQL数据库,用于存储大规模的结构化数据。它运行在Hadoop上,可以在大规模集群上进行水平扩展。HBase支持随机读写、批量操作和事务处理等功能。 以上是这些数据存储相关技术的简单介绍。在实际应用中,需要根据具体的场景和需求选择合适的技术来存储和管理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值