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. Intent官方教程(5)在manifest中给组件添加<Intent-filter>

    Receiving an Implicit Intent To advertise which implicit intents your app can receive, declare one o ...

  2. 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。

    package b; public interface ZuoBiao { double zuobiao(); } package b; public class Point implements Z ...

  3. 【转载】创建和使用动态链接库 (C++)

    原文:http://blog.csdn.net/handforcpp/article/details/3478254 也可参考MSDN: 演练:创建和使用动态链接库 (C++) 我们将创建的第一种类型 ...

  4. 用ubuntu下载电影:磁力链接,torrent,迅雷链接

    用ubuntu下载电影:磁力链接,torrent,迅雷链接 操作系统:Ubuntu 14.04 64位 需要软件:Ktorent, Amule 安装软件: sudo apt-get install k ...

  5. 回归——线性回归,Logistic回归,范数,最大似然,梯度,最小二乘……

    写在前面:在本篇博客中,旨在对线性回归从新的角度考虑,然后引入解决线性回归中会用到的最大似然近似(Maximum Likelihood Appropriation-MLA) 求解模型中的参数,以及梯度 ...

  6. [Lonlife1031]Bob and Alice are eating food(递推,矩阵快速幂)

    题目链接:http://www.ifrog.cc/acm/problem/1031 题意:6个水果中挑出n个,使得其中2个水果个数必须是偶数,问有多少种选择方法. 设中0代表偶数,1代表奇数.分别代表 ...

  7. 【CC评网】2013.第38周 要阅读 要有好工具

    要阅读,要有好工具 Reeder终于在ipad上推出了第二代版本,终于脱离了Google reader而独立存在: 自从Google reader关闭之后,我就在各种支持rss的阅读器中游荡,却总是找 ...

  8. HTML笔记(六)文档类型

    <!DOCTYPE>声明帮助浏览器正确显示网页.一般放在页面的最前面. DTD是Document Type Definition的缩写,是一套关于标记符的语法规则,是一种文档验证机制. H ...

  9. 【网摘】DICOM 基础简介

    一 什么是DICOM?DICOM是Digital Imaging and Communication of Medicine的缩写,是美国放射学会(American College of Radiol ...

  10. js判断ie11浏览器

    var isIE11 = (/Trident\/7\./).test(navigator.userAgent);