数据库集群

TiDB基本简介

百般思念 提交于 2020-01-21 09:48:24
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。下面是对有关资料的整理还有一些扩展内容以链接的方式展示,有兴趣可以点击了解一下。 一 TiDb简介  TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。TiDB 具备如下核心特点: 1 高度兼容 MySQL  大多数情况下

分布式之消息队列

旧巷老猫 提交于 2020-01-16 10:58:21
1、为什么要使用消息队列? 主要有三个原因: 解耦、异步、削峰 (1)解耦 传统模式: 传统模式的 缺点 : 系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 中间件模式: 中间件模式的的 优点 : 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。 (2)异步 传统模式: 传统模式的 缺点 : 一些非必要的业务逻辑以同步的方式运行,太耗费时间。 中间件模式: 中间件模式的的 优点 : 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 (3)削峰 传统模式 传统模式的 缺点 : 并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常 中间件模式: 中间件模式的的 优点 : 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。 2、使用了消息队列会有什么缺点? 分析 :一个使用了MQ的项目,如果连这个问题都没有考虑过,就把MQ引进去了,那就给自己的项目带来了风险。我们引入一个技术,要对这个技术的弊端有充分的认识,才能做好预防。 要记住,不要给公司挖坑! 回答 :回答也很容易,从以下两个个角度来答 系统可用性降低 :你想啊,本来其他系统只要运行好好的,那你的系统就是正常的。现在你非要加个消息队列进去

CDH5.12.1集群安装配置

ぐ巨炮叔叔 提交于 2020-01-16 08:46:49
CDH5.12.1&Kerberos 安装配置 环境: 操作系统:CentOS 7 JDK 版本:1.8.144 所需安装包及版本说明:由于我们的操作系统为CentOS7,需要下载以下文件: 下载地址: http://archive.cloudera.com/cm5/cm/5/ cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz 下载地址: http://archive.cloudera.com/cdh5/parcels/5.12.1/ CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 manifest.json IP地址 主机名 角色名称 部署软件 192.168.1.25 node5 Master jdk、cloudera-manager、MySql、krb5kdc、kadmin 192.168.1.21 node1 node jdk、cloudera-manager 192.168.1.22 node2 node jdk、cloudera-manager 192.168.1.23 node3 node jdk、cloudera-manager 192.168.1.24 node4 node jdk、cloudera

电商平台架构

感情迁移 提交于 2020-01-15 03:39:56
设计理念 1 时间换空间 1.1 多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag), 反向代理缓存,应用端的缓存(memcache),内存数据库,Buffer、cache机制(数据库,中间件等)。 1.2 索引 哈希、B树、倒排、bitmap 哈希索引:适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。 B树索引:适合于查询为主导的场景,避免多次的IO,提高查询的效率。 倒排索引:实现单词到文档映射关系的最佳实现方式和最有效的索引结构,广泛用在搜索领域。 Bitmap:是一种非常简洁快速的数据结构,他能同时使存储空间和速度最优化(而不必空间换时间),适合于海量数据的的计算场景。 2. 并行与分布式计算 2.1 任务切分、分而治之(MR) 在大规模的数据中,数据存在一定的局部性的特征,利用局部性的原理将海量数据计算的问题分而治之。 MR模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffle and sort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。 2.2 多进程

管理OralceASM实例

佐手、 提交于 2020-01-09 17:41:35
Administration of Oracle ASM Instances   Oracle ASM is typically installed in an Oracle Grid Infrastructure home separate from the Oracle Database home. Only one Oracle ASM instance is supported on a server in a standard configuration; however, Oracle Flex ASM provides additional configuration options.   When managing an Oracle ASM instance, the administration activity should be performed in the Oracle Grid Infrastructure home. Using Oracle Grid Infrastructure for a Standalone Server 在独立服务器上使用Oracle Grid基础结构 独立服务器的Oracle网格基础结构(Oracle Restart)提高了Oracle数据库的可用性。 在为独立服务器安装Oracle Grid基础结构时

浅谈数据库集群方案

不想你离开。 提交于 2020-01-06 03:28:04
单点数据库 数据库往往是系统中的性能瓶颈,所以通常在系统设计中会引入各种各样的缓存机制,以避免频繁访问数据库。另外,数据库由于其重要性,高可用要求也是避免不了的,因为一旦数据库挂了基本上整个系统也就不能使用了。 而以上这些常见问题都是单点数据库带来的限制,为了解决这些问题,达到高性能、高可用的目的,我们就需要在系统架构设计中采用数据库集群方案。 性能测试 既然单点数据库存在性能问题,那么有没有实际数据呢?下面我们就来对单点数据库进行一个性能测试,看看其并发极限大概是多少。我这里使用了一台2核2G的云服务,mysql版本为8.0.18。 mysql自带了一个性能测试工具:mysqlslap,我们可以使用该工具进行测试,具体的测试参数如下: [root@localhost ~]# mysqlslap -hlocalhost -uroot -pyour_password -P3306 --concurrency=500 --iterations=1 --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=500 主要参数说明: 参数 说明 --concurrency 并发数量

Redis主从同步、哨兵、集群

拜拜、爱过 提交于 2020-01-02 00:02:32
什么是主从同步(复制) 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。 主从复制的作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。 读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量; 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。 Redis之主从同步的实现原理 1.当从库和主库建立ms(master和slave)关系后,会向主库发送sync命令。 2.收到SYNC命令的主服务器执行BGSAVE命令

云存储课程四个数据库集群部署实验报告

点点圈 提交于 2020-01-01 18:13:17
云存储课程四个数据库集群部署实验报告 实验一:CentOS7.2上部署MySQL主从数据库 小坨的CentOS7.2上部署MySQL主从数据库实验报告 实验二:mongoDB简单增删改查操作 小坨的mongoDB简单增删改查操作实验报告 实验三:MongoDB的Replica Set 部署 小坨的MongoDB Replica Set 部署实验报告 实验四:MongoDB的副本集和分片集群部署 小坨的MongoDB 副本集和分片集群部署实验报告 来源: CSDN 作者: 阿坨 链接: https://blog.csdn.net/atuo200/article/details/103794325

Redis常见面试题

房东的猫 提交于 2019-12-31 23:44:52
1、什么是Redis?   Redis 是一个基于内存的高性能key-value数据库,不过在系统中一般充当高速缓存的角色。 2、为什么Redis需要把所有数据放到内存中?    访问内存的速度远高于访问硬盘的速度,如果不将数据放在内存中,磁盘I/O速度将严重影响Redis的性能。在内存越来越便宜的今天,Redis将会越来越受欢迎。 3、对Redis的访问为什么是单进程单线程的   Redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销。Redis的开发者认为Redis的性能瓶颈不在CPU,而是网络等因素。所以采取单线程的方式是最快的。单线程能够有效避免CPU切换的开销,另外I/O多路复用技术也有效的提升了访问速度。 4、Reids的特点(Redis的好处) 访问速度快。原因归结为三个方面:一是数据存储在内存中;二是对数据的访问是单线程操作,避免了不必要的IO开销;三是底层的数据结构合理,类似于hashMap,存取的时间复杂度为O(1)。 拥有丰富数据类型。支持string,list,hash ,set,sorted set五种类型 支持事务。拥有与传统数据库不同的独特的事务特性。在Redis中,一个事务中所有命令操作具有原子性 可以持久化缓存数据。拥有AOF和RDB两种持久化方式,保证系统重启数据不丢失 拥有成熟的可扩展,高可用的分布式解决方案。像Redis

MHA+maxscale实现数据库集群的高可用和读写分离-简易版

戏子无情 提交于 2019-12-30 22:48:01
服务器: manager—MHA的管理节点,负责监控主从集群状态并进行故障迁移 Master–主节点 Slave1 Slave2 准备软件:mysql5.7、mha-manager、mha-node(最好rpm包)、低版本maxscale 提前做好ssh互信 1.所有服务器安装依赖包:防止报错都安装 Yum -y install epel-* 安装扩展源(防止自带的yum源不足) yum install -y perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager 2.所有服务器安装mysql5.7到/usr/local/mysql下 mysql5.7安装注意事项:需要初始化生成原始密码,备份并删除原始my.cnf文件防止后期soket和pid报错 groupadd mysql useradd -r -g mysql mysql mkdir /usr/local/mysql/data -p chown -R mysql:mysql /usr/local/mysql/ chmod -R 755 /usr/local/mysql/ 某个版本之后这个步骤是下面这样