正文
mysql中间件怎么样 mysql 分布式中间件
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
mycat中间件在实际开发中经常用到吗?
前身是阿里的cobar,MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。 目前虽然传统关系数据库存在一些列的先天弊端,但NoSQL数据库又将其替代,但是如果传统数据库易于扩展和分拆就可以极大的避免单机单库在数据增删改查方面的缺陷。MyCat就是为了解决数据库的分拆和扩展而生的开源分布式数据库系统。其最终的目标就是低成本地将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
mysql中间件有哪些?
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。
Atlas
Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。
Altas架构:
Atlas是一个位于应用程序与MySQL之间,它实现了MySQL的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。
以下是一个可以参考的整体架构,LVS前端做负载均衡,两个Altas做HA,防止单点故障。
Altas的一些新特性:
1.主库宕机不影响读
主库宕机,Atlas自动将宕机的主库摘除,写操作会失败,读操作不受影响。从库宕机,Atlas自动将宕机的从库摘除,对应用没有影响。在mysql官方的proxy中主库宕机,从库亦不可用。
2.通过管理接口,简化管理工作,DB的上下线对应用完全透明,同时可以手动上下线。
3.自己实现读写分离
(1)为了解决读写分离存在写完马上就想读而这时可能存在主从同步延迟的情况,Altas中可以在SQL语句前增加 /*master*/ 就可以将读请求强制发往主库。
主库可设置多项,用逗号分隔,从库可设置多项和权重,达到负载均衡。
4.自己实现分表
(1)需带有分表字段。
(2)支持SELECT、INSERT、UPDATE、DELETE、REPLACE语句。
(3)支持多个子表查询结果的合并和排序。
这里不得不吐槽Atlas的分表功能,不能实现分布式分表,所有的子表必须在同一台DB的同一个database里且所有的子表必须事先建好,Atlas没有自动建表的功能。
5.之前官方主要功能逻辑由使用lua脚本编写,效率低,Atlas用C改写,QPS提高,latency降低。
6.安全方面的提升
(1)通过配置文件中的pwds参数进行连接Atlas的用户的权限控制。
(2)通过client-ips参数对有权限连接Atlas的ip进行过滤。
(3)日志中记录所有通过Altas处理的SQL语句,包括客户端IP、实际执行该语句的DB、执行成功与否、执行所耗费的时间 ,如下面例子。
mysql读写分离用哪个中间件比较妥
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡mysql中间件怎么样,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。
其他mysql开源中间件产品有:Atlas,cobar,tddl。mysql中间件怎么样你可以查阅一下相关信息和各自的优缺点。
mysql 代理中间件能减轻数据库压力吗
当使用MySQL数据库的网站访问量越来越大的时候,它的压力也会越来越大,那么如何给MySQL数据库减压呢?那就是优化! 单机MySQL的优化有三种方法。分别是:一、服务器物理硬件的优化;二、MySQL安装时的编译优化;三、自身配置文件my.cnf的优化。一、服务器物理硬件的优化1、磁盘寻道能力(磁盘I/O) 是制约MySQL性能的最大因素之一,建议使用RAID1+0磁盘阵列,另外最好不要尝试使用RAID-5,因为MySQL在RAID-5磁盘阵列上的效率实际上并不是很快;2、CPU也很重要,对于MySQL应用,推荐使用DELL R710,E5620 @2.40GHz(4 core)* 2或跟这个处理能力差不多的也行。 3、物理内存,物理内存对于一台使用MySQL的Database Server来说,服务器内存建议不要小于2GB,推荐使用4GB以上的物理内存。二、MySQL安装时的编译优化 建议采取编译安装的方法,这样性能上有较大提升,服务器系统建议用64bit的Centos5.5,源码包的编译参数会默认以Debgu模式生成二进制代码,而Debug模式给MySQL带来的性能损失是比较大的,所以当我们编译准备安装的产品代码时,一定不要忘记使用“—without-debug”参数禁用Debug模式。 而如果把—with-mysqld-ldflags和—with-client-ldflags二个编译参数设置为—all-static的话,可以告诉编译器以静态方式编译和编译结果代码得到最高的性能。使用静态编译和使用动态编译的代码相比,性能差距可能会达到5%至10%之多。三、自身配置文件my.cnf的优化 当解决了上述服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。对 MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。下面我们介绍一些对性能影响较大的参数。下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明:#vim /etc/my.cnf以下只列出my.cnf文件中[mysqld]段落中的内容,其他段落内容对MySQL运行性能影响甚微,因而姑且忽略。[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sockskip-locking#避免MySQL的外部锁定,减少出错几率增强稳定性。skip-name-resolve#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!back_log = 384#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自 己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。key_buffer_size = 384M#key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低!max_allowed_packet = 4M thread_stack = 256K table_cache = 614K sort_buffer_size = 6M#查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。read_buffer_size = 4M#读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。join_buffer_size = 8M#联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M#指定MySQL查询缓冲区的大小。可以通过在MySQL控制台观察,如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够 的情况;如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。tmp_table_size = 256M max_connections = 768#指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提 示,则需要增大该参数值。max_connect_errors = 1000 wait_timeout = 10#指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。thread_concurrency = 8#该参数取值为服务器逻辑CPU数量*2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4*2=8;这个目前也是双四核主流服务器配置。skip-networking#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!table_cache=1024#物理内存越大,设置就越大.默认为2402,调到512-1024最佳innodb_additional_mem_pool_size=4M#默认为2Minnodb_flush_log_at_trx_commit=1#设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1innodb_log_buffer_size=2M#默认为1Minnodb_thread_concurrency=8#你的服务器CPU有几个就设置为几,建议用默认一般为8key_buffer_size=256M#默认为218,调到128最佳tmp_table_size=64M#默认为16M,调到64-256最挂read_buffer_size=4M#默认为64Kread_rnd_buffer_size=16M#默认为256Ksort_buffer_size=32M#默认为256Kthread_cache_size=120#默认为60query_cache_size=32M 另外很多情况需要具体情况具体分析1、如果Key_reads太大,则应该把my.cnf中Key_buffer_size变大,保持Key_reads/Key_read_requests至少1/100以上,越小越好。2、如果Qcache_lowmem_prunes很大,就要增加Query_cache_size的值。 通过参数设置进行性能优化或多或少可以带来性能的提升,但效果不一定会很突出。
目前mysql分库分表中间件好用的有哪个
目前mysql分库分表中间件好用的有哪个
其优点: 分库分表与应用脱离,分库表如同使用单库表一样
减少db 连接数压力
热重启配置
可水平扩容
遵守Mysql原生协议
无语言限制,mysqlclient,c,java等都可以使用
Heisenberg服务器通过管理命令可以查看,如连接数,线程池,结点等,并可以调整
采用velocity的分库分表脚本进行自定义分库表,相当的灵活
生产环境都使用什么Mysql中间件
那个原淘宝的一个DBA @平民架构mysql中间件怎么样,做mysql中间件怎么样了个一个oneproxy【有企业在使用mysql中间件怎么样,但是目前还不多,敢尝鲜的话,可以咨询下他,】{OneProxy是经过他对MySQL Proxy进行修改过的版本,可以透明地支持MySQL分库分表、读写分离、Failover的一个高效的独立的中间件,对应用基本透明,非常适合于企业搭建私有的MySQL RDS集群,很好地解决数据层的可扩展性问题}。或者mysql中间件怎么样你看看MySQL Fabric RC - Adding High Availability and/or Scaling to MySQL这个。
关于mysql中间件怎么样和mysql 分布式中间件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。