最近有同行在使用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. Zygote和System进程的启动过程、Android应用进程启动过程

    1.基本过程 init脚本的启动Zygote Zygote进程的启动 System进程的启动 Android应用进程启动过程 2.init脚本的启动 +------------+ +-------+ ...

  2. android 系统的时间间隔和睡眠用哪个?

    原文 : https://developer.android.com/reference/android/os/SystemClock.html SystemClock.elapsedRealtime ...

  3. Web自动化测试框架-PO模式

    Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架. 一.适用范围:传统Web功能自动化测试.H5功能自动化测试 ...

  4. 基于Ubuntu14.04下Suricata(一款高性能的网络IDS、IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐)

    为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机器环境实验室的大数 ...

  5. Oracle对表空间无权限

    有的时候我们在Oracle数据库中对执行insert.update之类的语句时会出错,Oracle说我们对表空间无权限.执行下面的语句就可以修改用户对表空间的权限了. 执行语句: alter user ...

  6. iOS开发 - CoreData框架 数据持久化

    Core Data Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还 ...

  7. Tinking in Java ---Java的NIO和对象序列化

    前面一篇博客的IO被称为经典IO,因为他们大多数都是从Java1.0开始就有了的:然后今天这篇博客是关于NIO的,所以的NIO其实就是JDK从1.4开始,Java提供的一系列改进的输入/输出处理的新功 ...

  8. HTML5——动画延迟的另外一种方式

    https://www.cnblogs.com/hhhhhh/p/5758167.html

  9. (转)淘淘商城系列——使用maven tomcat插件启动聚合工程

    http://blog.csdn.net/yerenyuan_pku/article/details/72672389 上文我们一起学习了如何使用maven tomcat插件来启动web工程,本文我们 ...

  10. POI原生导入读取EXCEL

    好久没用 最近项目有冲突 所以又用到了这个 谁知道以后还会不会用 先记下来吧 直接扔项目里 调方法就OK 了. 记录一下....不想再写类似这样的东西了 import org.apache.poi.h ...