mysql中间件

wafer2的几个简单示例

别等时光非礼了梦想. 提交于 2019-12-05 17:47:40
如何快速新建路由 服务端 Demo 采用 Koa.js 框架编写,腾讯云基于 Koa 对上层进行一个简单的封装,方便你快速的添加新建路由 只需要在 controllers 目录下新建一个文件,例如为 demo.js ,写入如下代码: module.exports = function (ctx, next) { ctx.state.data = { msg: 'Hello World' } } 保存之后,接着在 routes/index.js 的 module.exports = router 之前添加如下路由并保存: router.get('/demo', controllers.demo) 接着点击右上角的“腾讯云”按钮,选择“上传测试代码”,勾选“智能上传”,点击确定即可上传并部署代码,等到提示开发环境部署成功了之后,打开浏览器,访问 https://腾讯云分配的域名/weapp/demo ,即可看到刚刚编写的返回,是一个 JSON 字符串: {"code":0,"data":{"msg":"Hello World"}} 如何使用服务端 SDK 连接和操作数据库 服务端 SDK 还暴露出了内部使用的 MySQL 连接,由于 SDK 内部使用 Knex.js 连接数据库,SDK 暴露的 MySQL 实例就是 Knex.js 连接实例,具体使用方法可以查看 Knex.js 文档

node项目实战-用node-koa2-mysql-bootstrap搭建一个前端论坛

醉酒当歌 提交于 2019-12-05 16:29:00
前言 在学习了koa2和express并写了一些demo后,打算自己写一个项目练练手,由于是在校生,没什么好的项目做,即以开发一个前端论坛为目标,功能需求参照一下一些社区拟定,主要有: 登录注册 个人信息维护、头像等基本信息 发表文章,富文本编辑器采用wangEditor插件,编辑、删除文章,文章分类等 文章评论、文章收藏、点赞等 支持文章分页、评论分页加载 关注取关用户 资源(文件)上传分享、下载、查看 学习资源推荐..... 作者个人日记 but。。。。由于种种原因,目前仅实现了部分功能,资源分享还没写 项目运行效果: http://120.77.211.212/home 项目技术栈应用:node-koa2-ejs-bootstrap3—jquery, github地址: https://github.com/Jay214/myb... ,如果觉得对你有帮助或者还看得下去,欢迎star~~鼓励鼓励我这前端渣渣辉。 开发环境 node: v8.3.0 koa: ^2.4.1 mysql: 5.7.1 npm: 5.3.0及以上 如何运行项目 将项目clone至本地 git clone git@github.com:Jay214/myblog-koa2.git 安装模块中间件 npm install 安装mysql mysql版本推荐使用5.7以下的,5.7的有个bug

mysql高可用方案分析

僤鯓⒐⒋嵵緔 提交于 2019-12-05 15:06:34
低读低写并发、低数据量方案 方案一:双机高可用方案 1.数据库架构图 2.特点 一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。 3.开发说明 此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive配置,并互相检测心跳。当其中一台故障后,虚拟IP地址会自动漂移到另外一台正常的库上。 数据库的主备配置、故障排除和数据补全,需要DBA和运维人员来维护。而程序代码或配置并不需要修改。 具体配置可参考资料: http://lizhenliang.blog.51cto.com/7876557/1362313 http://database.51cto.com/art/201012/237204.htm http://gaoke.iteye.com/blog/2283890 4.适应场景 读和写都不高的场景(单表数据低于500万),双机高可用。 5.优缺点 优点是一个机器故障了可以自动切换;缺点是只有一个库在工作,读写并未分离,并发有限制。 方案二:主从结构方案 1.数据库架构图 2.特点 一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。 3.开发说明 这种方案的实现,要借助数据库中间件Mycat来实现,Mycat的datahost配置如下

MySQL/MariaDB读写分离配置

大城市里の小女人 提交于 2019-12-05 06:17:58
DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力;数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作。 实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mysql-proxy这个中间件来实现数据库的读写分离;使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql服务器上。 数据库读写分离比较实用的还有Amoeba等相关程序。 基本环境 此环境需要三台主机(可以是虚拟主机) Linux 操作系统 版本: CentOS8.0 软件版本: 数据库: mariadb lua: lua.X86_64 mysql-proxy: mysql-proxy-0.8.5 这里因为需要用三台主机,我电脑配置有点上愁,所以我这里就使用容器(docker)代替三台虚拟主机了 root@uduntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8aea2ebdf1a5 centos "/sbin/init" 12 minutes ago Up 11 minutes mysql-proxy 9a24bbeec012

MySQL 中间件 - DBLE 简单使用

∥☆過路亽.° 提交于 2019-12-05 04:48:43
DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持; 环境准备 DBLE项目资料 DBLE官方网站:https: //opensource.actionsky.com 可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础 DBLE官方项目:https: //github.com/actiontech/dble 如对源码有兴趣或者需要定制的功能的可以通过源码编译 DBLE下载地址:https: //github.com/actiontech/dble/releases 建议下载最新的releases版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包 DBLE社区交流: 669663113 安装JDK环境 DBLE是使用java开发的,所以需要启动dble需要先在机器上安装java版本1.8或以上,并且确保JAVA_HOME参数被正确的设置; 这里通过yum源的方式安装了openjdk,同学们可以自行google jdk的几百种安装方式,这里不在赘述; # yum install java-1.8.0-openjdk 确认java环境已配置完成 # java -version openjdk

PostgresSQL HA高可用架构实战

廉价感情. 提交于 2019-12-04 15:22:13
PostgresSQL HA高可用架构实战 原创 2015-09-25 萧少聪 高可用架构 本文由萧少聪在高可用架构群所做的分享整理而来,转载请注明高可用架构公众号:ArchNotes。 萧少聪(花名:铁庵),广东中山人,阿里云RDS for PostgreSQL/PPAS云数据库产品经理。自2006年以来,长期从事RedHat及SuSE Linux的HA集群搭建及PostgreSQL数据库支持工作。2011年开始组建Postgres(数据库)中国用户会。 PostgreSQL背景介绍 有不少同学希望了解PostgreSQL的背景及它与MySQL的对比结果,所以在此啰唆两句,有兴趣的同学可以单独给我发E-Mail,我可以分享详细的介绍及一些对比结果。 2015年是PostgreSQL正式在中国起步的一年,我们看到越来越多的企业选择了PostgreSQL。 中国移动主动使用PostgreSQL实现分布式数据库架构。 金融业方面平安集团明确表示将使用PostgreSQL作为新一代数据库的选型。 华为中兴纷纷加入PostgreSQL内核研究队伍。 阿里云正式提供PostgreSQL服务。 大部分人了解MySQL应该都是从2005年左右开始,那时在互联网带动下LAMP空前繁荣。而你所不知道的是,那时PostgreSQL已发展了近30年,至今已经超过40年

实现mysql的读写分离(mysql-proxy)____2

萝らか妹 提交于 2019-12-04 10:43:59
mysql-proxy简介 MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力。 使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql服务器上。  mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等  MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,   从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。   当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多 个proxy的连接参数即可。 从图中可以看到,SQL语句并不直接进入到master数据库或者slave数据库,而是进入到 proxy,然后proxy判断这条语句是有关写的语句(包括insert、update、delete)还 是读语句(select

数据库(分库分表)中间件对比

非 Y 不嫁゛ 提交于 2019-12-03 15:22:28
数据库(分库分表)中间件对比 https://www.cnblogs.com/cangqiongbingchen/p/7094822.html 基本概念:分区,分片,分表,分库 分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm。 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后的表呢,还是一张表。分区可以把表分到不同的硬盘上,但不能分配到不同服务器上。 优点:数据不存在多个副本,不必进行数据复制,性能更高。 缺点:分区策略必须经过充分考虑,避免多个分区之间的数据存在关联关系,每个分区都是单点,如果某个分区宕机,就会影响到系统的使用。 分片:对业务透明,在物理实现上分成多个服务器,不同的分片在不同服务器上 个人感觉跟分库没啥区别,只是叫法不一样而已,值得一提的是关系型数据库和nosql数据库分片的概念以及处理方式是一样的吗? 请各位看官自行查找相关资料予以解答 分表:当数据量大到一定程度的时候,都会导致处理性能的不足,这个时候就没有办法了,只能进行分表处理。也就是把数据库当中数据根据按照分库原则分到多个数据表当中, 这样,就可以把大表变成多个小表,不同的分表中数据不重复,从而提高处理效率。 分表也有两种方案: 1. 同库分表:所有的分表都在一个数据库中,由于数据库中表名不能重复

【转帖】关于数据库中间件的思考

六眼飞鱼酱① 提交于 2019-12-03 15:16:50
作者:kimmking 链接:https://www.zhihu.com/question/352256403/answer/878523206 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 题主,恭喜你,你深入思考了一系列重要问题,作为一个开源技术人员+数据中间件的爱好者,试着回答一下题主的几个问题: 什么时候需要数据中间件,中间件能干什么 数据中间件的实现原理,有哪些开源数据中间件 为什么都是国内开源的,并且大都停止了更新 推荐使用什么数据中间件,有什么优势 一、什么时候需要数据中间件,中间件能干什么 就像题主说的那样,随着业务的发展,MySQL、Oracle数据库里的表越来越大,一两年以后,2千万、甚至上亿记录的表就会出现了(一般可以简单认为表比较复杂的时候,MySQL几百万上千万的时候,Oracle几千万的时候,就会出现复杂查询或变更有性能问题),这时候可能会导致复杂的查询慢,插入和修改数据慢,修改表的DDL执行太慢导致无法修改列类型或者加索引或者加字段等等。怎么办呢?这时候我们可以由几个处理办法: 历史表:按时间拆分历史表出去,降低数据量,这个以前比较常见,其实也是一种特殊的水平拆分,对业务有侵入性 垂直拆分:按列,将上百列的宽表拆分成多个列少(也就是每条记录数据量小)的表,不降低记录数,但是降低整个表的数据量和索引量大小 水平拆分

【转】数据库优化的几个阶段

家住魔仙堡 提交于 2019-12-03 09:14:16
转自: https://www.cnblogs.com/rjzheng/p/9619855.html#4365629 引言 大家在面试的时候,是否遭遇过,面试官询问 你们是如何进行数据库优化的? 那这个问题应该怎么答呢?其实写这个题材的原因是我这几天看到各公众号转的一篇数据库调优的知识(不上链接了),我就稍微翻了几下,上面动不动就来说要对数据库进行 水平拆分 ,我就想反问各位读者,你们几个人经历过 水平拆分 ?现在很多文章,实践性实在太差,只能说纯理论分析。 这篇文章最早来自知乎的一个提问,我在其基础上完善了一下。 第一阶段 优化sql和索引 这才是调优的第一阶段啊, 为什么呢? 因为这一步成本最低啊,不需要加什么中间件。你没经过索引优化和SQL优化,就来什么 水平拆分 ,这不是坑人么。 那 步骤 是什么样呢?我说个大概 (1)用慢查询日志定位执行效率低的 SQL 语句,开启慢查询日志方式: (2)用 explain 分析 SQL 的执行计划 (3)确定问题,采取相应的优化措施,建立索引啊,等 我就不举例了,因为如何优化SQL的文章,一抓一大把,再贴过来,读者看着也累。 第二阶段 搭建缓存 在优化sql无法解决问题的情况下,才考虑搭建缓存。毕竟你使用缓存的目的,就是将复杂的、耗时的、不常变的执行结果缓存起来,降低数据库的资源消耗。 这里需要 注意 的是:搭建缓存后