|
|
Mysql主从复制及读写分离的实现-MyCat
MyCat介绍
什么是MyCat
- 一个彻底开源的,面向企业应用开发的大数据库集群
- 支持事务、ACID、可以替代MySQL的加强版数据库
- 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
- 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
- 一个新颖的数据库中间件产品
MyCat官网:http://www.mycat.org.cn/
优势
copy官方的说明:
基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。
MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MYCAT的产品质量。
MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设(猜测是说的淘宝的TDDL,只开源动态数据源,分表分库部分还未开源)。
Mysql主从复制及读写分离的实现-Amoeba
#Amoeba简介
Amoeba(变形虫)项目,该开源框架于2008年开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面使用
Amoeba优缺点
优点:
1、降低费用,简单易用
2、提高系统整体可用性
3、易于扩展处理能力与系统规模
4、可以直接实现读写分离及负载均衡效果,而不用修改代码
缺点:
1、不支持事务与存储过程
2、暂不支持分库分表,amoeba目前只做到分数据库实例
3、不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多数据的场合)
Mysql GTID
Mysql 5.6的新特性之一,加入了全局事务性ID(GTID:Global Transactions Identifier)来强化数据库的主备一致性,故障恢复,以及容错能力;也使得复制功能的配置、监控及管理变得更加易于实现,且更加健壮。
Nginx配置ngx_pagespeed
pagespeed介绍
pagespeed是 Goolge 为 Apache 和 nginx 开发的前端优化扩展模块,其中适用 Apache 环境的叫 mod_pagespeed,适用于 nginx 环境的叫 ngx_pagespeed。
pagespeed 的功能包括但不限于以下方面:
优化传输带宽(过滤)(压缩图片、CSS、JS文件,去除html空白、注释…)、降低请求(CSS、JS文件合并、图片雪碧、识别并重定向常用JS库、缓存控制)、域名映射(支持CDN)、提升客户端体验(图片预加载、延迟加载,移动端图像优化),同时还提供对 https 的支持。
安装
安装方法 Google pagespeed 网站上有详细介绍,复制过来方便不能翻墙的朋友查看。
安装依赖
RedHat, CentOS, or Fedora:
Ubuntu or Debian:
安装ngx_pagespeed
目前 ngx_pagespeed 最新的版本是 1.12.34.2 beta版(要求 gcc ≥ 4.8 or clang ≥ 3.3),查看最新版本
下载 nginx 并编译 ngx_pagespeed 模块
编译 ngx_pagespeed 模块
|
|
因为ngx_pagespeed模块的编译需要gcc ≥ 4.8 or clang ≥ 3.3,而我们使用的centos6系列gcc源版本只有4.7。官网给了一个解决方案:
然后编译nginx的时候使用
我理解的是通过yum源将高版本的gcc已经安装到了/opt/rh/devtoolset-2/root/usr/bin/gcc目录下,然后编译的时候指定由高版本的gcc来进行编译。
配置
linux的运行级别及自启动程序
Nginx+Tomcat+Memcached集群
部署环境
系统:Centos
软件及依赖包:
Nginx:
nginx-1.6.2.tar.gz
(http://nginx.org/download/nginx-1.6.2.tar.gz)
pcre-8.36.tar.gz (ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz)
zlib-1.2.8.tar.gz(http://zlib.net/zlib-1.2.8.tar.gz)
memcached:
memcached-1.4.22.tar.gz(http://memcached.org/files/memcached-1.4.22.tar.gz)
libevent-2.0.22-stable.tar.gz(http://libevent.org/)
memcached-session-manager:
下载地址
Tomcat:
apache-tomcat-7.0.59.tar.gz (http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz)
jdk-7u72-linux-x64.tar.gz
jar包:
我采用的是截止目前最新的版本,其中序列化方式是可选的。
序列化方式使用kryo时,jar包:下载地址
序列化方式使用javolution时,jar包:下载地址
了解到kryo序列化方式效率最高。
相关序列方式,所需不同jar包,可参考官方文档
CentOS下Oracle安装
安装前准备
安装依赖包
oracle 安装所需程序包,可以到安装步骤时,查看缺少什么程序就安装什么程序
|
|
使用命令 yum install -y ‘package name’ 安装所缺的程序包,pdksh包除外
安装pdksh包,使用rz命令上传pdksh-5.2.14-37.el5_8.1.x86_64.rpm文件到/opt/目录下
|
|
CentOS 安装与调优配置
分区
至少2个分区,/以及swap分区。另外设置独立/boot分区。
所以生产环境分3个分区。
分区案例:http://oldboy.blog.51cto.com/2561410/634725
|
|