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. Repeater的Command操作

    Repeater的Command操作 1.ItemCommand事件 :在Repeater中所有能触发事件的控件,都会来触发这一个事件 后台创建:在Page_Load中 Repeater1.ItemC ...

  2. shell脚本例子集锦(习题总结)

    练习一:写一个脚本 .设定变量FILE的值为/etc/passwd .依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么 形如:(提示:LINE=`wc -l /etc/passw ...

  3. reactjs源码

    'use strict'; var EventConstants = _dereq_(15);var EventPropagators = _dereq_(19);var ExecutionEnvir ...

  4. VC++ 线程同步 总结

    注:所谓同步,并不是多个线程一起同时执行,而是他们协同步调,按预定的先后次序执行. 与线程相关的基本函数包括:CreateThread:创建线程CloseHandle:关闭线程句柄.注意,这只会使指定 ...

  5. 实现Action类

    实现Action类 1.Action类的作用: (1)封装HTTP的请求参数: (2)处理用户请求: (3)封装处理结果. 2.Action类是什么,在Action类中应该包含什么: Action类就 ...

  6. MySQL中怎么对varchar类型排序问题

    MySQL中怎么对varchar类型排序问题 在mysql默认order by 只对数字与日期类型可以排序,但对于varchar字符型类型排序好像没有用了,下面我来给各位同学介绍varchar类型排序 ...

  7. [Unity3D]开发视图中的标记 - Gizmos

    这个类用来做自己的组件很不错,比如下面这个图的路径点,他其实是个Empty Object,可以自己加脚本让他带上标记.官方解释还可以用来做帮助提示的-.- 大游戏场景的制作时候,你可以用这个在地图上写 ...

  8. DirectX 3d 取景变换

    在世界坐标系中,几何体和摄像机都是相对于世界坐标系定义的.但是当摄像机的位置和朝向任意时,投影变换及其它类型的变的就略显困难或效率不高.为了简化运算,我们将摄像机变的至世界坐标系原点,并将其旋转,使摄 ...

  9. 用t4模板和head.js进行css和js的版本控制

    head.js  介绍 http://headjs.com/site/api/v1.00.html#load 原文http://www.cnblogs.com/wang2650/p/5102690.h ...

  10. hdu 0-1背包

    题目地址http://acm.hdu.edu.cn/showproblem.php?pid=2602 #include <stdio.h> #include <string.h> ...