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. CSS——清除浮动

    <div id="main" class="clear"> <div id="left"> </div> ...

  2. 列出本机JCE提供者,支持消息摘要算法,支持公钥私钥算法

    import java.security.Provider; import java.security.Security; public class TestBouncyCastle { public ...

  3. poj3349

    http://poj.org/problem?id=3349 每个雪花都有六个分支,用六个整数代表,这六个整数是从任意一个分支开始,朝顺时针或逆时针方向遍历得到的.输入多个雪花,判断是否有形状一致的雪 ...

  4. 【MySQL】MySQL的find_in_set的使用例子

    > 参考的优秀文章 FIND_IN_SET(str,strlist) > 简单的例子 这个函数的功能是,在第二个参数中寻找第一个参数,并返回第一个参数所在的位置,不存在则返回0.其中,第二 ...

  5. CSocket客户端(TCP)

    首先是UDP和TCP的区别: UDP是不连接服务器,每次发送数据的时候需要服务器的IP:而TCP是先连接服务器,保持常连接,然后直接发送不需要IP. 下面是TCP客户端: 1.新建项目,TestCSo ...

  6. UVA 11461 - Square Numbers

    题目:统计区间中的平方数个数. 分析: ... #include <stdio.h> #include <string.h> ]; int main() { int i, a, ...

  7. .Net自帶Ajax和GridView

    如圖所示,在新建web窗體后的工具欄中有一個 AJAX擴展 ScriptManager 在整個網頁中有且只有一個,使用母版頁和用戶控件中尤為注意, 例如在嵌套母版頁和用戶控件時只在最外層加上Scrip ...

  8. BZOJ 2756 奇怪的游戏(最大流)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2756 题意:在一个 N*M 的棋盘上玩,每个格子有一个数.每次 选择两个相邻的格子,并使 ...

  9. 【转】ffmpeg参数中文详细解释

    感谢“大神”的无私奉献:http://blog.csdn.net/leixiaohua1020/article/details/15811977 a) 通用选项 -L license-h 帮助-fro ...

  10. jQuery插件之jquery editable plugin--点击编辑文字插件

    jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件.(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该 ...