最近有同行在使用Amoeba 的过程中多少遇到了一些问题。

总结一下遇到问题的解决方法:

1、读写分离的时候设置的在queryRouter中设置无效?

读写分离配置的优先级别:

       1满足rule.xml 文件中规则的级别比 queryRouter的要高
在rule文件中:
     2)Rule 中的配置 比 tableRule高
     3)读、写 配置比 默认配置 高
 
你检查一下rule.xml是否存在rule 规则配置满足你的sql,从而走的是 rule中的那些read/write/default   pool. 如果存在可以删除或者把规则完善。
 queryRouter的配置是针对所有sql,但是如果先满足了某条rule,则将会选择rule的配置。
 
记住配置优先级别。

2、读写大数据量的时候内存溢出?

Amoeba默认内存设置比较少set DEFAULT_OPTS=-Xms64m -Xmx128m,具体设置请根据amoeba.bat进行修改。Java的垃圾收集参数、内存参数、以及操作系统多线程方面等都需要进行调优。java的 JVM在32位系统最大一般是1.5G,多线程处理方面,一般看并发以及cpu数量决定的。
 
Sql无限制条数情况,如果结果集合过大,不仅仅amoeba,甚至应用都会崩溃,必然会存在这种内存瓶颈问题。这个需要DBA来审核每条的sql,避免这种类似sql出现。作为测试来说,需要jvm参数设置超过你读取数据所消耗最大内存。Java对超多对象处理会明显感觉性能下降,特别是进行垃圾回收的时候。
 
因此在使用amoeba的时候请先调整好自己使用的内存参数,这个对非java用户来说可能有点难度
这儿我就对内存参数设置做一个说明:
-Xms 是该应用最小的jvm内存。 -Xmx是jvm内存最大设置, 后面m表示内存大小单位。作为生成环境当操作系统大于1G的时候一般建议设置1024m。
 
 
 
分享到: 

http://blog.csdn.net/csrcom/article/details/2581062

解决在使用Amoeba遇到的问题的更多相关文章

  1. 解决 Amoeba连接mysql出错 解决方案

    今天配置mysql的主从复制 用到了Amoeba.从安装到启动服务,我深深地体会到学运维的不易. 首先是  安装错误  的解决,连接错误  的兄弟可以直接往下拉. 安装错误 1.出现 JAVA_HOM ...

  2. Amoeba+Mysql实现数据库读写分离

    一.Amoeba 是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与Client.DB Server(s)之间.对客户端透明.具有负载均衡.高可用性.sql过滤.读写分离 ...

  3. Amoeba for MySQL---分布式数据库Proxy解决方案

    Amoeba是什么? Amoeba(变形虫)项目,致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy ...

  4. Amoeba For MySQL读写分离

    Amoeba安装,参考http://hi.baidu.com/itfenqing/item/79fe989838e1e8ad83d2959c Amoeba版本为:amoeba-mysql-1.3.1- ...

  5. Amoeba:开源的分布式数据库Porxy解决方案

    http://www.biaodianfu.com/amoeba.html 什么是Amoeba? Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件 ...

  6. Amoeba for MySQL MySql集群软件

    一, Amoeba简述    Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发 ...

  7. (转)使用Amoeba 实现MySQL DB 读写分离

    Amoeba(变形虫)项目是一个开源框架,于2008年开始发布一款 Amoeba for Mysql软件: 这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQ ...

  8. Amoeba For MySQL入门:实现数据库水平切分

    当系统数据量发展到一定程度后,往往需要进行数据库的垂直切分和水平切分,以实现负载均衡和性能提升,而数据切分后随之会带来多数据源整合等等问题.如果仅仅从应用程序的角度去解决这类问题,无疑会加重应用程度的 ...

  9. Amoeba相关产品及其介绍

    Amoeba for MySQL Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query       路由功能,专注 分布式数据库 ...

随机推荐

  1. 2016/10/29 action与form表单的结合使用

    1>web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= ...

  2. sed附加命令

    追加命令(命令a) sed '[address] a the-line-to-append' input-file 在第二行后面追加一行(原文这里可能有问题,没有写名行号) [root@sishen ...

  3. ASP.NET MVC数据库初始化

    public class DBInitializer:DropCreateDatabaseAlways<BookDBContext> { protected override void S ...

  4. Dev之GridControl详解

    Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多半借助Demo和英文帮助文档.网上具体的使用方法也多半零碎.偶遇一个简单而且 ...

  5. [转]在ubuntu上安装chrome浏览器

    原文链接: https://www.linuxidc.com/Linux/2013-10/91857.htm --------------------------------------------- ...

  6. Android学习笔记(十四) Handler理论补充

    一.如何下载Android源码 在SDK Manager中选中Sources for Android SDK. 二.ThreadLocal初步介绍 1)执行ThreadLocal对象(static f ...

  7. Python学习 Day 12 调试 断言 logging pdb pdb.set_trace

    调试 第一种方法简单直接粗暴有效,就是用print把可能有问题的变量打印出来看看: >>> def foo(s): n= int(s) print '>>> n = ...

  8. 键盘工具栏的快速集成--IQKeyboardManager

    转自:http://www.cnblogs.com/gaoxiaoniu/p/5333187.html 键盘工具栏的快速集成--IQKeyboardManager IQKeyboardManager, ...

  9. nginx php 配置模板

    server {     listen 80;     server_name    www.xxx.com;     #access_log     logs/www.xxx.com.access. ...

  10. C/C++ 各进制赋值、int/char转换、sscanf/sprintf、位操作运算

    一.各进制赋值 1.十六进制赋值 int i=0x12AD; int i=0X12AD; int i=0x12Ad; int i=0X12Ad; //以上都是十六进制,表示十进制173: 2.八进制赋 ...