什么是Amoeba

为什么使用Amoeba

安装Amoeba

①安装jdk并配置环境变量

vi /etc/profile

source /etc/profile 使配置生效

上传Amoeba安装文件: 如果没有安装zip/unzip软件先yum install一下

修改配置文件:

vi dbServers.xml

输入d + G清空配置文件中的内容, 重新进行配置

dbServer.xml配置内容:

<?xml version="1.0" encoding="gbk"?><!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd">
<amoeba:dbServers xmlns:amoeba="http://amoeba.meidusa.com/"><!-- Each dbServer needs to be configured into a Pool,If you need to configure multiple dbServer with load balancing that can be simplified by the following configu
ration:          add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with n
ame factoryConfig            such as 'multiPool' dbServer   --><dbServer name="abstractServer" abstractive="true"><factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"><property name="connectionManager">${defaultManager}</property><property name="sendBufferSize">64</property><property name="receiveBufferSize">128</property><!-- mysql port --><property name="port">3306</property><!-- mysql schema --><property name="schema">msb</property><!-- mysql user --><property name="user">root</property><property name="password">123456</property></factoryConfig><poolConfig class="com.meidusa.toolkit.common.poolable.PoolableObjectPool"><property name="maxActive">500</property><property name="maxIdle">500</property><property name="minIdle">1</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 name="writedb"  parent="abstractServer"><factoryConfig><!-- mysql ip --><property name="ipAddress">192.168.85.11</property></factoryConfig></dbServer><dbServer name="slave"  parent="abstractServer"><factoryConfig><!-- mysql ip --><property name="ipAddress">192.168.85.12</property></factoryConfig></dbServer><dbServer name="myslave" virtual="true"><poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"><!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--><property name="loadbalance">1</property><!-- Separated by commas,such as: server1,server2,server1 --><property name="poolNames">slave</property></poolConfig></dbServer>
</amoeba:dbServers>

amoeba.xml配置内容:

<?xml version="1.0" encoding="gbk"?><!DOCTYPE amoeba:configuration SYSTEM "amoeba.dtd">
<amoeba:configuration xmlns:amoeba="http://amoeba.meidusa.com/"><proxy><!-- service class must implements com.meidusa.amoeba.service.Service --><service name="Amoeba for Mysql" class="com.meidusa.amoeba.mysql.server.MySQLService"><!-- port --><property name="port">8066</property><!-- bind ipAddress --><!-- <property name="ipAddress">127.0.0.1</property>--><property name="connectionFactory"><bean class="com.meidusa.amoeba.mysql.net.MysqlClientConnectionFactory"><property name="sendBufferSize">128</property><property name="receiveBufferSize">64</property></bean></property><property name="authenticateProvider"><bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator"><property name="user">root</property><property name="password">123456</property><property name="filter"><bean class="com.meidusa.toolkit.net.authenticate.server.IPAccessController"><property name="ipFile">${amoeba.home}/conf/access_list.conf</property></bean></property></bean></property></service><runtime class="com.meidusa.amoeba.mysql.context.MysqlRuntimeContext"><!-- proxy server client process thread size --><property name="executeThreadSize">128</property><!-- per connection cache prepared statement size  --><property name="statementCacheSize">500</property><!-- default charset --><property name="serverCharset">utf8</property><!-- query timeout( default: 60 second , TimeUnit:second) --><property name="queryTimeout">60</property></runtime></proxy><!-- Each ConnectionManager will start as threadmanager responsible for the Connection IO read , Death Detection--><connectionManagerList><connectionManager name="defaultManager" class="com.meidusa.toolkit.net.MultiConnectionManagerWrapper"><property name="subManagerClassName">com.meidusa.toolkit.net.AuthingableConnectionManager</property></connectionManager></connectionManagerList><!-- default using file loader --><dbServerLoader class="com.meidusa.amoeba.context.DBServerConfigFileLoader"><property name="configFile">${amoeba.home}/conf/dbServers.xml</property></dbServerLoader><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">writedb</property><property name="writePool">writedb</property><property name="readPool">myslave</property><property name="needParse">true</property></queryRouter>
</amoeba:configuration>

启动amoeba

如果出现栈内存配置不够的错误提示, 需要改下配置文件, 进入amoeba文件夹, vi jvm.properties

./launcher启动amoeba:

登录:

测试amoeba

将写库所在的节点停掉:

再进行insert的操作,会报错:

同样地,如果将读库所在的节点停掉, 也会报错:

使用Amoeba实现MySQL读写分离详细步骤(推荐的方式)相关推荐

  1. MySQL-proxy实现读写分离详细步骤

    MySQL读写分离介绍: 官方提供了一种mysql-proxy的技术用于解决读写分离, 但不是GA, 官方不推荐在生产环境使用这种方式. 环境配置: ①准备3台服务器: ②在master和slave上 ...

  2. 使用amoeba配置mysql读写分离

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

  3. Amoeba数据库代理 实现mysql读写分离

    Amoeba   依赖jdk centons7安装jdk8 目前Amoeba for Mysql最新版本为amoeba-mysql-3.0.5-RC-distribution.zip. 安装过程很简单 ...

  4. Amoeba 主从复制和读写分离

    引子 最近在研究Web服务端负载均衡方面的技术,参考网上资料,总体思路可以分为如下几类: 1.应用服务器集群,典型的代表就是Nginx+Tomcat实现负载均衡: 2.数据库集群.  本文主要关注数据 ...

  5. mysql读写分离_Mysql数据库09MySQL读写分离

    Mysql数据库09-MySQL读写分离 一.读写分离应用案例分析 在企业用户中,在大量的数据请求下,单台数据库将无法承担所有读写操作.解决方法:配置多台数据库服务器以实现主从复制+读写分离. 二.读 ...

  6. java读取mysql配置文件_Linux运维:MySQL读写分离解决方案

    一次性付费进群,长期免费索取教程,没有付费教程. 进微信群回复公众号:微信群:QQ群:460500587  教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍  微信公众号:计算机与网络安全 I ...

  7. amoeba mysql下载_amoeba数据库中间件透明实现MYSQL读写分离

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

  8. mysql读写分离错_MySQL主从同步、读写分离配置步骤、问题解决

    根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要 ...

  9. mysql读写分离,主从配置

    2019独角兽企业重金招聘Python工程师标准>>> 一个完整的mysql读写分离环境包括以下几个部分: 应用程序client database proxy database集群 ...

最新文章

  1. 论文简述 | 鸟瞰单目多体SLAM
  2. Oracle 原理: 初步认识程序包
  3. 超级usb万能启动盘
  4. 虚拟机的网络连接模式
  5. 前端路由的原生代码实现?前端如何监听路由变化?
  6. java23中设计模式——行为模式——Chain of Responsibility(职责链)
  7. sublime text3 sql 格式化
  8. jpg、jpeg、png... 的区别
  9. 数据交换网技术---与非安全网络业务互联的新思路
  10. 1.1.1.1校园网_突破校园网限制,开启寝室Wifi
  11. 电视和计算机共享视频,电脑中的图片视频一键共享到电视上去看
  12. Effective Java 枚举和注解 第30条:用 enum 代替 int 常量
  13. python中cv的差值_python+opencv实现移动侦测(帧差法)
  14. 新闻分类(文本分类)
  15. CSDN博客之星——找到自己的榜样
  16. Redisson分布式调度任务小栗子
  17. 关键词生成器在线-在线免费关键词生成器
  18. 如何用大数据软件确定 数码电子店铺选址
  19. 解决SVN清理失败问题
  20. 轻巧易用,音质更进一步,南卡Lite pro 2真无线耳机上手

热门文章

  1. 【深度学习】深度学习两大基础Tricks:Dropout和BN详解
  2. 复现经典:《统计学习方法》第 12 章 监督学习方法总结
  3. 统计学习方法第二十一章作业:PageRank迭代算法、幂法、代数算法 代码实现
  4. 关于jupyter几个不得不知道的tips
  5. 如何使用 Javascript/node.js 在 WebRTC 中构建音视频通话APP?
  6. 电脑PDF怎么转换成WPS,这招你学会了
  7. 大对象简介+大对象的4种类型+lob类型的优点+lob的组成
  8. 模拟Spring如何在WEB中运行
  9. openstack API debug OpenstackEveryProject_CLI,curl_based
  10. [笔记]使用shell命令(awk,sed,grep)处理几个特征字符串之间的文本