kingshard

数据库中间件设计分析

删除回忆录丶 提交于 2020-08-11 08:22:07
目录 1.为什么需要中间件 不分库篇 (1)普通的应用程序 (2)并发读写大--缓存 (3)缓存过期问题--读写分离+缓存 (4)隔离对DAO层影响--数据库中间件+读写分离+缓存 (5)业务模块多--集群+数据库中间件+读写分离+缓存 分库篇 (1)业务模块多,数据总量大--分库+缓存 (2)分库对Dao层代码影响--分库+数据库中间件+缓存 (3)读写压力大--分库+读写分离+数据库中间件+缓存 2.数据库中间价设计要点 (1)垂直拆分 (2)水平拆分 (3)无论是垂直拆分、水平拆分,都有共同的技术难点 (4)数据库中间件的两种实现模式 (5)常用数据库中间件简介 小结 1.为什么需要中间件 不分库篇 (1)普通的应用程序 数据库访问 数据库存储的数据量不是很大,但并发的读写操作都很大,超过数据库服务器的处理能力。 阿里云-RDS版MySQL性能测试结果(MySQL 5.6) TPS:每秒钟处理事务数量 QPS:每秒钟SQL语句执行条数(并发请求数) (2)并发读写大–缓存 业务场景 :数据量不是很大,仅并发读写超过数据库服务器的处理能力 解决办法 : 加缓存 (3)缓存过期问题–读写分离+缓存 业务场景 :缓存会有过期命不中,还是会有大量的读和全部的写操作将请求数据库,如果数据库支持不起,怎么办? 解决办法 :读写分离+缓存 (4)隔离对DAO层影响–数据库中间件+读写分离

kingshard最佳实践(二)

╄→尐↘猪︶ㄣ 提交于 2020-03-01 10:46:04
上篇主要介绍了kingshard的工作流程、搭建及部分功能测试,今天来测试一下kingshard对sharding的支持 一、kingshard的sharding介绍 1.1 kingshard的sharding优势 现在开源的MySQL Proxy已经有几款了,并且有的已经在生产环境上广泛应用。但这些proxy在sharding方面,都是不能分子表的。也就是说一个node节点只能分一张表。但我们的线上需求通常是这样的: 我有一张非常大的表,行数超过十亿,需要进行拆分处理。假设拆分因子是512。 如果采用单node单数据库的分表方式,那其实这512个子表还是存在一个物理节点上,意义不大。 如果采用他们的sharding功能,就需要512个物理节点,也不现实。 面对这种需求,现有的proxy就不能很好地满足要求了。通常我们希望将512张子表均分在几个MySQL节点上,从而达到系统的横向扩展。 然而kingshard较好地实现了这种典型的需求。简单来说,kingshard的分表方案采用两级映射的方式: 1.kingshard将该表分成512张子表,例如:test_0000,test_0001,... test_511。 2.将shardKey通过hash或range方式定位到其要操作的记录在哪张子表上。 3.子表落在哪个node上通过配置文件设置。 1.2 sharding支持的操作

Linux安装supervisor工具-管理kingshard

隐身守侯 提交于 2019-12-30 18:19:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.前言 2.安装 2.1 安装Python 2.2 安装supervisor 2.3 编辑配置文件 2.3.1 生成配置文件 2.3.2 配置supervisord.conf 3.管理supervisor 4.设置开机自启动 1.前言 在一个分布式环境中,每台机器上可能需要启动和停止多个进程,使用命令行方式一个一个手动启动和停止非常麻烦,而且查看每个进程的状态也很不方便。如果有一个工具能够实现每台机器上多个进程的简单高效中心化管理将是非常方便的。于是Supervisord工具应运而生。与Supervisord类似的工具包括monit,daemontools和runit。supervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程 2.安装 Supervisord是运行在Python环境下的服务监控程序,所以在安装supervisord之前必须有python环境 2.1 安装Python 检查是否安装python,没有则安装 > python -V > yum install python-setuptools 2.2 安装supervisor 安装Python完成后安装supervisor > yum install supervisor > supervisorctl status 2

4.MySQL读写分离中间件-kingshard搭建

不想你离开。 提交于 2019-12-30 17:53:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.kingshard简介 2. 安装Go语言环境 2.1 下载源码包 2.2. 解压到指定目录下 2.3. 更新环境变量 2.4. 查看go的版本信息 3.安装kingshard 3.1 下载tar包 3.2 解压文件 3.3运行kingshard 1.kingshard简介 kingshard是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。 kingshard的性能是直连MySQL性能的80%以上。线上使用kingshard,请从 release页面 获取最新版!! 参考地址: https://gitee.com/flikecn/kingshard 按照介绍文档中的安装步骤进行的不大顺利,请按下面步骤进行安装: 2. 安装Go语言环境 2.1 下载源码包 > wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz 2.2. 解压到指定目录下 > tar -C /usr/local -xzvf go1.12.9.linux-amd64.tar.gz <说明>解压成功后,会在/usr