Atals编译以及配置

此博客主要讲解qihoo 360开源的Atals的编译与配置,详细过程如下:

依赖需求:

  1. glib(2.32.0以上)
  2. libevent(1.4以上)
  3. Lua(5.1.x)
  4. OpenSSL(0.9.8以上)

1、下载源代码

    https://github.com/Qihoo360/Atlas

2、编译:

    通过bootstrap.sh脚本配置configure的时候需要注意,如果glib、libevent库不在标准目录下,需要通过GLIB_CFLAGS、GLIB_LIBS等其他变量指定,以下是我更改过的bootstrap.sh脚本

#!/bin/sh 
base=$(cd "$(dirname "$0")"; pwd)
cd $base

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --with-mysql=/var/eyouim/pub/mysql/bin/mysql_config --prefix=/usr/local/mysql-proxy \
				CFLAGS="-DHAVE_LUA_H -g -O2 -I/home/eyouim/athena/third_party/Linux/2.6-kernal/libevent-1.4.10-stable/include" \
				LIBS="-L/home/eyouim/athena/third_party/Linux/2.6-kernal/libevent-1.4.10-stable/lib -levent" \
				LDFLAGS="-lm -ldl -lcrypto -Wl,-R/usr/local/mysql-proxy/lib/mysql-proxy/plugins" \
				LUA_CFLAGS="-I/usr/local/include/" LUA_LIBS="-L/usr/local/lib -llua" \
				GLIB_CFLAGS="-I/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/include/glib-2.0 \
							-I/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/lib/glib-2.0/include" \
				GLIB_LIBS="-L/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/lib -lglib-2.0"	\
				GMODULE_CFLAGS="-I/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/include/glib-2.0 \
								-I/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/lib/glib-2.0/include" \
				GMODULE_LIBS="-Wl,--export-dynamic -L/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/lib -lgmodule-2.0 -lglib-2.0"	\
				GTHREAD_CFLAGS="-I/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/include/glib-2.0 \
								-I/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/lib/glib-2.0/include" \
				GTHREAD_LIBS="-L/home/eyouim/athena/third_party/Linux/2.6-kernal/glib-2.34.3/lib -lgthread-2.0 -lrt -lglib-2.0"	\

    2.1 ./bootstrap.sh

    2.2 make && make install

3、创建并且配置配置文件

[mysql-proxy]
plugins = admin,proxy #Atlas加载的模块名称,不需要改

admin-username = liuliu #管理接口的用户名
admin-password = aaaaa #管理接口的密码
admin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua #实现管理接口的Lua脚本所在路径

proxy-backend-addresses = 127.0.0.1:3305 #Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔

#Atlas后端连接的MySQL从库的IP和端口,2代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔;如果没有则必须注释
#proxy-read-only-backend-addresses = 127.0.0.1:3305@2

#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true
daemon = 0

#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true
keepalive = 0

#工作线程数,推荐设置与系统的CPU核数相等
event-threads = 2

#日志级别,分为message、warning、critical、error、debug五个级别
log-level = debug 
#日志存放的路径
log-path = /usr/local/mysql-proxy/log
#实例名称,用于同一台机器上多个Atlas实例间的区分
instance = eyouim_mysql_proxy

#Atlas监听的工作接口IP和端口
proxy-address = 0.0.0.0:1234
#Atlas监听的管理接口IP和端口
admin-address = 0.0.0.0:2345

#连接池的最小空闲连接数,可根据业务请求量大小适当调大或调小
min-idle-connections = 128

#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项
tables = imserver.userinfo.uid.3

#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,此设置项用于多个用户名同时访问同一个Atlas实例的情况,若只有一个用户名则不需要设置该项
#pwds = user1:+jKsgB3YAG8=, user2:GS+tr4TPgqc=

#默认字符集,若不设置该项,则默认字符集为latin1
charset = utf8

    在保持此配置文件的是有一点需要注意:保存的配置文件名必须与instance的键值相同,并且mode必须是0660或更低,以笔者的配置来说保存的完整路径是:

/usr/local/mysql-proxy/conf/eyouim_mysql_proxy.cnf
4、启动mysql-proxy

/usr/local/mysql-proxy/bin/mysql-proxyd eyouim_mysql_proxy start

5、检查msql-proxy是否启动成功

/usr/local/mysql-proxy/bin/mysql-proxyd eyouim_mysql_proxy status

6、停止mysql-proxy运行

/usr/local/mysql-proxy/bin/mysql-proxyd eyouim_mysql_proxy stop

网上参考资料:

    https://github.com/Qihoo360/Atlas/blob/master/README


你可能感兴趣的:(mysql,mysql-proxy,qihoo/atlas)