标签:blog http io ar os 使用 java sp for
一、Amoeba的简述:[来自百度百科]
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 解压JDK软件到/usr/local目录下[root@centos tmp]# tar -xf jdk-7u15-linux-x64.tar.gz -C /usr/local/# 进入相应目录,并建立java目录[root@centos tmp]# cd /usr/local/[root@centos local]# mkdir java# 将解压出来的内容移到java目录[root@centos local]# mv jdk1.7.0_15/* java# 设置java环境变量[root@centos local]# echo ‘export JAVA_HOME=/usr/local/java‘ >> ~/.bashrc[root@centos local]# . ~/.bashrc# 测试jdk是否正确安装[root@centos local]# java -version# *******************************# 以下这个方法设置JDK[在下面设置amoeba时,会覆盖,所以这里的配置文件,以最下面amoeba的配置为准][root@centos java]# echo $JAVA_HOME[root@centos java]# vim /etc/profile# 在末尾添加export JAVA_HOME=/usr/locla/javaexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH[root@centos java]# source /etc/profile# ******************************* |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
[root@centos java]# cd /tmp/# 建立相应amoeba目录[root@centos tmp]# mkdir /usr/local/amoeba# 将压缩包解压到指定目录[root@centos tmp]# tar -xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba[root@centos tmp]# cd /usr/local/amoeba/[root@centos amoeba]# cd conf/# 准备修改配置文件#/* 以下部分为注解#/* Amoeba总共有7个配置文件,分别如下:#/* Amoeba主配置文件($AMOEBA_HOME/conf/amoeba.xml),用来配置Amoeba服务的基本参数,如Amoeba主机地址、端口、认证方式、用于连接的用户名、密码、线程数、超时时间、其他配置文件的位置等。#/* 数据库服务器配置文件($AMOEBA_HOME/conf/dbServers.xml),用来存储和配置Amoeba所代理的数据库服务器的信息,如:主机IP、端口、用户名、密码等。#/* 切分规则配置文件($AMOEBA_HOME/conf/rule.xml),用来配置切分规则。#/* 数据库函数配置文件($AMOEBA_HOME/conf/functionMap.xml),用来配置数据库函数的处理方法,Amoeba将使用该配置文件中的方法解析数据库函数。#/* 切分规则函数配置文件($AMOEBA_HOME/conf/ruleFunctionMap.xml),用来配置切分规则中使用的用户自定义函数的处理方法。#/* 访问规则配置文件($AMOEBA_HOME/conf/access_list.conf),用来授权或禁止某些服务器IP访问Amoeba。#/* 日志规格配置文件($AMOEBA_HOME/conf/log4j.xml),用来配置Amoeba输出日志的级别和方式。# 配置后端mysql 服务器连接[dbServer.xml][root@centos conf]# vim dbServers.xml.........................(省略) <dbServer name="abstractServer" abstractive="true"> <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"> <property name="manager">${defaultManager}</property> <property name="sendBufferSize">64</property> <property name="receiveBufferSize">128</property># 设置 mysql 数据库的端口 <!-- mysql port --> <property name="port">3306</property># 设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式,# 不支持 use dbname指定缺省库,因为操作会调度到各个后端dbserver <!-- mysql schema --> <property name="schema">kongzhong</property> # 设置amoeba连接后端数据库服务器的账号和密码,需在后端数据库器上创建该用户,并授权amoeba连接 <!-- mysql user --> <property name="user">kongzhong123</property> <!-- mysql password --> <property name="password">kongzhong123</property> </factoryConfig> <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool"> # 最大连接数[默认] <property name="maxActive">500</property> # 最大空闲连接数[默认] <property name="maxIdle">500</property> <property name="minIdle">10</property> <property name="minEvictableIdleTimeMillis">600000</property> <property name="timeBetweenEvictionRunsMillis">600000</property> <property name="testOnBorrow">true</property> <property name="testOnReturn">true</property> <property name="testWhileIdle">true</property> </poolConfig> </dbServer> # 设置一个后端的dbServer,名为master ,这个可以随便取,但是为了明确其含义,最好给予特殊含义的单词,这里是主DB SERVER <dbServer name="master" parent="abstractServer"> <factoryConfig> # 设置这台DB server 的ip地址 <!-- mysql ip --> <property name="ipAddress">192.168.1.102</property> </factoryConfig> </dbServer># 再设置一台后端mysql数据库,这里叫slave,名字需要唯一[这里可以创建N个后端数据库,只要复制下面<dbServer>...</dbServer>] <dbServer name="slave" parent="abstractServer"> <factoryConfig># 设置这台DB server 的ip地址 <!-- mysql ip --> <property name="ipAddress">192.168.1.100</property> </factoryConfig> </dbServer># 指定一个虚拟的dbServer,将上面定义的dbserver加入这个虚拟的dbserver,相当于组成一个组[这里我们将读的数据库组成一个组]# 这里 需要将 name="mul..." 改成自己想要取的名字,这个名字也需要有含义,后面会用到 <dbServer name="ReadPool" virtual="true"> <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--># 选择调度算法 1 是轮询 2 是权重 3 是HA 这里选择1 轮询 <property name="loadbalance">1</property> <!-- Separated by commas,such as: server1,server2,server1 --># 负载均衡,slave1,slave2当成2个服务器进行调度,这模拟量加权的调度算法。# 注意这里使用的dbserver必须是已经定义了的,可以写多个,如slave1,slave2 <property name="poolNames">slave</property> </poolConfig> </dbServer></amoeba:dbServers> |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
[root@centos conf]# vim amoeba.xml.........................(省略) <proxy> <!-- service class must implements com.meidusa.amoeba.service.Service --> <service name="Amoeba for Mysql" class="com.meidusa.amoeba.net.ServerableConnectionManager"> <!-- port --> # 设置amoeba监听的端口(这里如果默认,后面测试需要指定端口,就是这里的端口) <property name="port">3306</property> <!-- bind ipAddress --> <!-- # 设置监听的接口,如果不设置,则监听所有的IP[选择默认] <property name="ipAddress">127.0.0.1</property> -->.........................(省略) <property name="authenticator"> <bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator"># 提供客户端连接amoeba时需要使用这里设定的账号 (这里的账号密码和amoeba连接后端数据库服务器的密码无关) <property name="user">kongzhong</property># 提供客户端连接amoeba时需要使用这里设定的密码 <property name="password">kongzhong</property> <property name="filter"> <bean class="com.meidusa.amoeba.server.IPAccessController"> <property name="ipFile">${amoeba.home}/conf/access_list.conf</property> </bean> </property> </bean> </property> </service>.........................(省略) <queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter"> <property name="ruleLoader"> <bean class="com.meidusa.amoeba.route.TableRuleFileLoader"> <property name="ruleFile">${amoeba.home}/conf/rule.xml</property> <property name="functionFile">${amoeba.home}/conf/ruleFunctionMap.xml</property> </bean> </property> <property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property> <property name="LRUMapSize">1500</property> <property name="defaultPool">master</property> <!-- --># 把默认注释掉的读写分离选项,把注释去掉并readpool修改成ReadPool(这个名字,我们前面在dbServer.xml里设置一个读数据库组,这里是作为只读池) <property name="writePool">master</property> <property name="readPool">ReadPool</property> <property name="needParse">true</property> </queryRouter> |
|
1
2
3
4
5
|
[root@centos conf]# vim /etc/profileJAVA_HOME=/usr/locla/javaAMOEBA_HOME=/usr/local/amoebaexport PATH=$PATH:$AMOEBA_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin[root@centos conf]# source /etc/profile |
|
1
2
3
4
5
6
|
# 如果确认能够正常启动,就加>>/dev/null 否则还是看一下提示信息[root@centos conf]# amoeba start & >>/dev/null# 检测启动情况[root@centos conf]# netstat -tulnp |grep java# 停止amoeba测试指令是否可用[root@centos conf]# amoeba stop |
|
1
2
3
4
5
6
7
8
9
10
|
# 建立配置文件指定的数据库mysql> create database kongzhong;mysql> use kongzhong# 创建用于测试的表mysql> create table t1(name varchar(10));# 插入测试数据mysql> insert into t1 values(‘102‘);# 授予amoeba用户连接数据库的权限mysql> grant all privileges on kongzhong.* to ‘kongzhong123‘@‘192.168.1.104‘ identified by ‘kongzhong123‘;mysql> flush privileges; |
|
1
2
3
4
5
6
7
8
9
10
|
# 建立配置文件指定的数据库mysql> create database kongzhong;mysql> use kongzhong# 创建用于测试的表mysql> create table t1(name varchar(10));# 插入测试数据mysql> insert into t1 values(‘100‘);# 授予amoeba用户连接数据库的权限mysql> grant all privileges on kongzhong.* to ‘kongzhong123‘@‘192.168.1.104‘ identified by ‘kongzhong123‘;mysql> flush privileges; |
|
1
2
3
4
|
# 登陆相应数据库,查询当前所在数据库(相应大家都应该懂的,就不详细演示了)[root@client102 ~]# mysql -ukongzhong -p -h192.168.1.104[root@client100 ~]# mysql -ukongzhong -p -h192.168.1.104[root@client104 ~]# mysql -ukongzhong -p -h192.168.1.104 |
|
1
2
3
4
5
6
7
8
9
10
11
|
The stack size specified is too small, Specify at least 160kError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.解决方法:[root@centos bin]# cd /usr/local/amoeba/# 修改配置文件[root@centos amoeba]# vim bin/amoeba将下面这行DEFAULT_OPTS="-server -Xms1024m -Xmx1024m -Xss128k"修改为:DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k" |
|
1
2
3
4
|
Error: JAVA_HOME environment variable is not set.解决方法:[root@centos local]# echo ‘export JAVA_HOME=/usr/local/java‘ >> ~/.bashrc[root@centos local]# . ~/.bashrc |
|
1
2
3
4
5
|
[root@centos conf]# vim log4j.xml [此文件在amoeba目录下的conf目录下]修改log4j.xml 取消日志文件生成(太大了,磁盘很容易满)<param name="file" value="${amoeba.home}/logs/project.log"/>改成<param name="file" value="<![CDATA[${amoeba.home}/logs/project.log>/dev/null]]>"/> |
|
1
2
3
4
|
[root@centos amoeba]# vim bin/amoebaDEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"改成DEFAULT_OPTS="-server -Xms512m -Xmx512m -Xmn100m -Xss1204k" |
标签:blog http io ar os 使用 java sp for
原文地址:http://www.cnblogs.com/steven9801/p/4092884.html