mysql中间件有哪些

mysql-proxy是官方提供的mysql中间件产品,可以实现负载均衡、读写分离、故障转移等,但无法支持大数据量,性能较差。
接下来我们看看Atlas、cobar、tddl这几个可以替代它们的MySQL开源中间件产品的优势和新特性。
AtlasAtlas是由奇虎360Web平台部基础设施团队开发和维护的基于MySQL协议的数据中间层项目。
基于mysql-proxy0.8.2版本进行优化,增加了多项新功能。
360内部使用Atlas来运行其mysql业务,每天处理数十亿的读写请求。
Altas架构:Atlas位于应用程序和MySQL之间,实现MySQL客户端和服务器协议,作为服务器与应用程序通信,作为客户端与MySQL通信。
它保护数据库详细信息免受应用程序的影响,并维护连接池以减轻MySQL的负担。
以下是完整的架构供您参考:LVS前端执行负载均衡,两个Alta执行HA以避免单点故障。
Altas的一些新特性:1、主库宕机不影响读取主库宕机。
如果主数据库宕机,Atlas会自动删除主数据库,但读取操作不会受到影响。
如果从数据库出现故障,Atlas会自动删除已故障的从数据库,而不会对您的应用程序产生任何影响。
在官方的mysqlproxy中,主库宕机了,从库也无法使用。
2.通过管理接口,DB的线上和线下操作对应用程序完全透明,并且可以通过手动同时进行线上和线下操作来简化管理任务。
3、直接实现读写分离(1)解决读写分离问题,如果想写完后立即读或者主从同步可能会延迟,可以加上/*。
master*/强制在Altas中的SQL语句之前将读取请求发送到本机库。
主库可以设置多个条目,以逗号分隔,从库可以设置多个条目和权重以进行负载均衡。
4、直接实现子表(1),必须有子表字段。
(2)支持SELECT、INSERT、UPDATE、DELETE和REPLACE语句。
(3)支持多个子表查询结果的合并和排序。
我对Atlas的表分区功能感到沮丧,它不允许我实现分布式表分区。
所有子表必须位于同一数据库中的同一数据库中,并且所有子表必须预先构建。
能够自动创建表。
5.以前正式的主要功能逻辑是使用lua脚本编写的,但效率低下。
Atlas已用C重写,以提高QPS并减少延迟。
6.安全性改进(1)通过配置文件中的pwds参数控制连接Atlas的用户权限。
(2)使用client-ips参数过滤授权连接Atlas的IP地址。
(3)日志包含Altas处理的所有SQL,如下例所示。
记录该语句的客户端IP、实际执行该语句的DB、执行是否成功、执行所花费的时间等。
图47.无缝重启无缝重启功能是通过在配置文件中设置lvs-ips参数来实现的。
否则,当Altas重新启动时,SQL请求将失败。
该参数之前连接的LVS的物理网卡的IP不是虚拟IP。
顺利重启的一个条件是lvs后面至少挂有两个配置相同的Atlas。
来源:https://github.com/Qihoo360/Atlasalibaba.cobarCobar是阿里巴巴(B2B)部门开发的一个关系数据的分布式处理系统,它看起来可能像分布式环境中的传统数据库。
那么我们就具体说说为什么要使用它,或者cobar能做什么。
以下是我们业务运营中可能出现的一些问题。
1.随着业务的进展,数据量和数据库的访问量迅速增加,必须对数据进行水平分区,以减轻单个数据库的负担,并且模糊水平分区的细节,这必须是高效且相对透明的。
2.为了提高可访问性,您应该备份数据源。
3.数据源可用性检测和故障转移。
4、前端高并发导致后端数据库连接过多,导致性能不佳。
针对以上问题,cobar中间件以代理的形式位于前端应用程序和实际数据库之间,向前端开放的接口是mysql通信。
代码。
通过改变前端SQL语句并根据数据分布规则将其传递到适当的后端数据子数据库,然后合并并返回结果,在单个数据库中模拟数据库行为。
科巴

nodejs使用node-mysql中间件的普通连接与连接池连接哪个好

建议使用中间件连接,方便运行数据库代码。
我们的后端使用中间件连接。
Nodejs的设计特性使其速度很快,即使是读写数据库等耗时的操作也是如此。
使用连接池的目的实际上是为了加快数据库的I/O速度。
所以,如果你使用的是Nodejs,使用常规连接就足够了!