OneProxy是一款数据库中间件,与目前市面上的TDDL、MySQL-Proxy属于同类型产品。我们坚持研发OneProxy是基于如下几点考虑:
      1. 我们不想被某一种开发语言绑定:TDDL绑定了客户必须使用JAVA做开发语言,而且整个一套系统的正常运行非常依赖于强大的配置推送中心和雄厚的运维团队;
      2. 使用上必须透明: MySQL-Proxy实现了MySQL协议,使得其看起来就像一个MySQL数据库一样,因此客户可以使用任何他们喜欢的语言来操作数据库。因此OneProxy借鉴了其在协议上的实现。
      3. 我们需要更稳定,更多功能的中间件: 令人痛心的是,官方对这款产品的重视度好像不够。从2007年第一版推出到2015年都快八年了,仍未达到GA状态。
 
  我们的OneProxy是楼方鑫倾力打造的一款产品,里面的每一行代码都流淌着丰富的经验。可以说,OneProxy生而为实战。 
    那我在这里先向大家丢出一个最常遇见的问题,如果数据库挂掉怎么办?
        1. 手动改应用配置,太low;就算这不是太low的事情,但是当你有20个应用要手动改呢?
        2. 虚拟IP自动漂移,优雅的方案,但是需要运维人员的悉心配合;
        3. 何不试试OneProxy内置的数据库切换方案,DBA一手搞定。
     
 不过别着急,今天我们就一起先搭建下这个系统。 
        1. 手上有一台linux 64bit的机器
        2. 从公司官网下载安装文件(http://www.onexsoft.com/download) 
        3. 安装
               解压到指定目录
                     mv oneproxy-rhel5-linux64*  /usr/local/
                     tar zxvf oneproxy-rhel5-linux64*
               更改启动文件 
               cd oneproxy/
               cat demo.sh
############################################################
#/bin/bash
#
export ONEPROXY_HOME=/data/oneproxy

if [ -f ${ONEPROXY_HOME}/oneproxy.pid ]; then
   kill -9 `cat ${ONEPROXY_HOME}/oneproxy.pid`
fi

sleep 2
# valgrind --leak-check=full --show-reachable=yes \
${ONEPROXY_HOME}/oneproxy --proxy-address=:3307 --proxy-extra-address=:3308 \
  --proxy-master-addresses=192.168.1.119:3306@default \
  --proxy-user-list=test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test \
  --proxy-part-tables=${ONEPROXY_HOME}/part.txt \
  --proxy-charset=gbk_chinese_ci --proxy-found-rows \
  --proxy-group-policy=default:master-only \
  --event-threads=6 --proxy-group-security=default:0 \
  --log-file=${ONEPROXY_HOME}/oneproxy.log \
  --pid-file=${ONEPROXY_HOME}/oneproxy.pid

 
############################################################     
                
更改后
          
############################################################
#/bin/bash
#
export ONEPROXY_HOME=/usr/local/oneproxy

if [ -f ${ONEPROXY_HOME}/oneproxy.pid ]; then
   kill -9 `cat ${ONEPROXY_HOME}/oneproxy.pid`
fi

sleep 2
# valgrind --leak-check=full --show-reachable=yes \
${ONEPROXY_HOME}/oneproxy --proxy-address=:3307 --proxy-extra-address=:3308 \
  --proxy-master-addresses=192.168.15.128:3306@default \
  --proxy-user-list=test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test \
  --proxy-part-tables=${ONEPROXY_HOME}/part.txt \
  --proxy-charset=gbk_chinese_ci --proxy-found-rows \
  --proxy-group-policy=default:master-only \
  --event-threads=6 --proxy-group-security=default:0 \
  --log-file=${ONEPROXY_HOME}/oneproxy.log \
  --pid-file=${ONEPROXY_HOME}/oneproxy.pid

 
############################################################     
 
     4. 启动
         sh ./demo.sh
         检查启动输出
          cat oneproxy.log
##############################
2015-05-04 19:38:15: (critical) plugin oneproxy 5.4.1-20150425 started
2015-05-04 19:38:15: (critical) valid config checksum = 88429892
##############################         
    5. 检查后端数据库节点状态
              进入管理端口(默认端口为4041)
                   mysql -uadmin -pOneProxy -P4041 --protocol=TCP
              然后键入
                    list backend;
              可以看到输出为:
+------+---------------------+-----------+--------+----------+---------+
| INDX | ADDRESS             | TYPE      | STATUS | REQUESTS | GROUP   |
+------+---------------------+-----------+--------+----------+---------+
|    1 | 192.168.15.128:3306 | RW/Master | UP     |        0 | default |
+------+---------------------+-----------+--------+----------+---------+
 
   6.  增加slave节点
        修改配置文件
###################################################
#/bin/bash
#
export ONEPROXY_HOME=/usr/local/oneproxy

if [ -f ${ONEPROXY_HOME}/oneproxy.pid ]; then
   kill -9 `cat ${ONEPROXY_HOME}/oneproxy.pid`
fi

sleep 2
# valgrind --leak-check=full --show-reachable=yes \
${ONEPROXY_HOME}/oneproxy --proxy-address=:3307 --proxy-extra-address=:3308 \
  --proxy-master-addresses=192.168.15.128:3306@default \
  --proxy-slave-addresses=192.168.15.128:3310@default \
  --proxy-user-list=test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test \
  --proxy-part-tables=${ONEPROXY_HOME}/part.txt \
  --proxy-charset=gbk_chinese_ci --proxy-found-rows \
  --proxy-group-policy=default:master-only \
  --event-threads=6 --proxy-group-security=default:0 \
  --log-file=${ONEPROXY_HOME}/oneproxy.log \
  --pid-file=${ONEPROXY_HOME}/oneproxy.pid

###################################################         
     
     重启OneProxy
         sh ./demo.sh
 
  7. 检查后端数据库节点状态
          方法同步骤5
          输出结果为
+------+---------------------+-----------+--------+----------+---------+
| INDX | ADDRESS             | TYPE      | STATUS | REQUESTS | GROUP   |
+------+---------------------+-----------+--------+----------+---------+
|    1 | 192.168.15.128:3306 | RW/Master | UP     |        0 | default |
|    2 | 192.168.15.128:3310 | RO/Slave  | UP     |        0 | default |
+------+---------------------+-----------+--------+----------+---------+
 
经过以上七步,相信你已经会部署和简单使用我们的系统了。
          
本文就这样结束了,如果你想找到我刚才提出的那个问题的答案的话,请转到我们的官方网站的这一页(http://www.onexsoft.com/oneproxy/oneproxy-auto-failover ) 来看看。
 
     

oneproxy---为实战而生之安装篇的更多相关文章

  1. OpenFaaS实战之九:终篇,自制模板(springboot+maven+jdk8)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. k8s入门系列之扩展组件(一)DNS安装篇

    DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...

  3. Linux负载均衡软件LVS之二(安装篇)[转]

    Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文 ...

  4. 开源文档管理系统LogicalDOC测试报告---安装篇

    开源文档管理系统LogicalDOC测试报告---安装篇 分类: Linux2011-06-22 15:40 7436人阅读 评论(3) 收藏 举报 文档管理测试mysql数据库installerja ...

  5. MongoDB安装篇-Win7 X64

    介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库 ...

  6. Flow简易教程——安装篇

    .mydoc_h1{ margin: 0 0 1em; } .mydoc_h1_a{ color: #2c3e50; text-decoration: none; font-size: 2em; } ...

  7. Ubuntu 16.04 RabbitMq 安装与运行(安装篇)

    Ubuntu 16.04 RabbitMq 安装与运行(安装篇) 2018年08月15日 15:05:24 我跟吴彦祖四六开 阅读数:1966   前言 目前公司用阿里云 + redis 的方式实现的 ...

  8. git在工作中的用法总结-环境安装篇

    使用git有很长一段时间了 ,平时用到的时候都是直接google,经常用到的一些也记录在笔记中,但有时候笔记太多,实在是太乱了(其实是我太懒~ 哈?),找都要半天的时候还不如直接google,今天有空 ...

  9. Spring Boot 揭秘与实战(五) 服务器篇 - Tomcat 启用 HTTPS

    文章目录 1. 生成证书 2. 配置 HTTPS 支持 3. 启动与测试 4. 源代码 Spring Boot 内嵌的 Tomcat 服务器可以启用 HTTPS 支持. 生成证书 使用第三方 CA 证 ...

随机推荐

  1. 一、java环境搭建

    结论: 1.jdk包括jre,jre包括jvm. 2.eclipse ide依赖环境变量.如果未设置,在启动eclipse工具会提示:返回码是13.

  2. H5网站借鉴

    http://www.rdinfo.com.cn/index.shtml http://www.winployee.com/ http://www.lkkdesign.com/ http://www. ...

  3. 11个让你吃惊的 Linux 终端命令

    原文:http://linux.about.com/od/commands/tp/11-Linux-Terminal-Commands-That-Will-Rock-Your-World.htm 作者 ...

  4. git push 403

    1. 在github上新建一个空项目. 2. git clone 到本地仓库. 3. git add [一些文件]. 4. git commit -m "first commit" ...

  5. git bash下的选择、复制、粘贴

      1. 打开git bash     2.点击左上角,选择属性,打钩     3.回到界面,选择一行文字,然后点击 “右键”,这样就复制到剪切板了.再点 “右键”,可以粘贴到命令窗口中了.    

  6. SQL——存储过程实例 循环

    --循环 create or replace procedure p_xunhuan(input in number,output out number) is ); begin ; ..input ...

  7. bzoj 2957: 楼房重建 线段树

    2957: 楼房重建 Time Limit: 10 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 小A的楼房外有一大片施 ...

  8. web服务器安装配置

    学习目标 javaweb概念和web资源分类 服务器的分类和常用服务器apache说明 tomcat 服务器目录结构介绍和工程发布 虚拟主机说明和配置 1.Web的概念 1.1.JavaWeb的概念 ...

  9. LTE Module User Documentation(翻译2)——配置LTE MAC 调度器

    LTE用户文档 (如有不当的地方,欢迎指正!) 5 配置 LTE MAC 调度器   这里有几种 LTE MAC 调度器用户可以选择.使用下面的代码定义调度器的类型: Ptr<LteHelper ...

  10. maven使用入门(pom)

    mvn clean complie mvn clean test mvn clean package mvn clean install(该任务将该项目输出的jar安装到了Maven本地仓库中) 各个 ...