zoukankan      html  css  js  c++  java
  • OneProxy学习笔记

    官方网站资源下载只有支持CentOS6的软件包,在CentOS7中也可以使用,但是启动文件有不同。每次手动kill,再启动很麻烦。

    刚发现官方博客资源下载有最新的支持CentOS7的软件包

    http://www.onexsoft.com/zh/download

    系统环境: cat /etc/redhat-release

    CentOS Linux release 7.6.1810 (Core)

    1.下载安装包并解压

    下载: wget http://www.onexsoft.com/software/oneproxy-rhel7-linux64-v6.2.0-ga.tar.gz

    解压: tar -zxvf oneproxy-rhel7-linux64-v6.2.0-ga.tar.gz

    解压完成对应目录下有一个oneproxy的目录

    2. 修改配置文件 /data/oneproxy/conf/proxy.conf

    • 原始配置
    
    [oneproxy]
    proxy-license = A2FF461456A67F28,D2F6A5AD70C9042D
    
    proxy-httpserver = 0.0.0.0:8080
    
    proxy-auto-readonly = 0
    proxy-slave-addresses.1 = db1:3306@default
    proxy-master-addresses.2 = db2:3306@default
    # proxy-slave-addresses.3 = ...
    
    proxy-group-policy = default:read_slave
    proxy-user-list = default:test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test
    
    

    更新后的配置:

    
    [oneproxy]
    
    proxy-license = A2FF461456A67F28,D2F6A5AD70C9042D
    
    proxy-httpserver = 0.0.0.0:8080
    
    proxy-auto-readonly = 0
    
    mysql-version = 5.7.26
    
    proxy-address = :3307
    
    admin-address = :4041
    
    proxy-master-addresses.1 = 127.0.0.1:3306@default
    
    proxy-group-policy.1 = default:master-only
    
    proxy-user-list.1            = default:root/0A4676F8872CD8EB6438921C860D22E0A07751C0@lottery_common
    
    proxy-charset = utf8_general_ci
    
    

    数据库用户名密码需要进入oneproxy管理后台生成,./demo.sh 启动oneproxy

    进入管理后台: mysql -uadmin -pOneProxy -h 127.0.0.1 -P4041 (进入oneproxy管理后台使用的默认账号&密码)

    
    生成配置文件的用户密码 passwd 原始密码;
    
    例如: passwd 'secret133'; //可以不带引号
    
    

    oneproxy管理后台操作命令:
    查看后端机器: list backend;
    查看组:list group;
    查看链接池: list pool;

    可以查看当前的mysql主机,分组等情况。

    这里只是为了熟悉oneproxy软件基本的配置和单数据库的分表,所以只用了一台数据库服务。

    网上太多教程上来就N台数据库,分库分表的配置,靠,作为一个第一次使用的人看着那些配置晕死。

    通过oneproxy代理连接业务数据库

    其实就是 proxy-address = :3307 连接 proxy-master-addresses.1 = 127.0.0.1:3306@default

    在客服端中连接oneproxy,由oneproxy代理去连接各业务数据库

    跟连接普通的数据库一样,只不过端口要使用oneproxy配置文件配置的端口

    mysql -utest -ptest -h 127.0.0.1 -P3307
    
    

    至此oneproxy的安装,启动 ,进入管理后台,基本的配置,通过oneproxy代理连接业务数据库都会了。

    下面就实现一个简单的分表配置来测试oneproxy的分表功能

    增加配置项引入分表的配置: proxy-part-tables.1 = conf/history_open.txt

    数据库建立相关的分表

    按站点site_id分表配置文件history_open.txt:

    [{
    "table" : "t_lottery_history_open",
    
    "pkey" : "site_id",
    
    "type" : "int",
    
    "method" : "list",
    
    "partitions":
    
    [
    { "name" : "t_lottery_history_open_1", "group": "default", "value" : ["1"] },
    
    { "name" : "t_lottery_history_open_4", "group": "default", "value" : ["4"] }
    
    ]
    
    }]
    
    

    重启oneproxy就可以测试查询,插入是否正确。

    ------------------------- 这里是分割线 --------------------------------

    下面是之前在CentOS6下安装时记录的笔记,反正乱七八糟,也懒得看,有空再整理。再次安装忘得干干净净,所以上面在CentOS7下再次安装记录整个流程。

    使用中的问题:

    • 配置文件的表必须存在才可以启动成功

    • 修改oneproxy的配置文件之后需要重启

    mysql 中间件OneProxy总结 https://blog.csdn.net/wjc19911118/article/details/51375196?utm_source=copy

    OneProxy 服务器可以和Mysql共同一台机器

    OneProxy 后台管理登录

    默认client port 3307
    mysql -utest -ptest -h 127.0.0.1 -P3307
    默认admin port 4041
    mysql -uadmin -pOneProxy -h 127.0.0.1 -P4041

    OneProxy 安装

    官方文档 https://pan.baidu.com/s/1o8J6n8I#list/path=%2F

    安装目录 /usr/local/oneproxy
    启动服务 service oneproxy start
    配置目录 /usr/local/oneproxy/conf/

    one proxy 分表原理(官方)

    http://www.onexsoft.com/zh/oneproxy-simple-database-sharding.html

    table 表名称
    pkey 分区键
    type 分区键字段类型
    method 分区方法
    partitions 分区配置
    db 数据库名称
    suffix 后缀
    group 分组
    value 值

    OneProxy 分区方法:
    range 按照字段值范围
    list
    hash

    原理博客 https://blog.csdn.net/wjc19911118/article/details/51375196

    分表查询 oneproxy
    https://blog.csdn.net/weixin_37998647/article/details/78750033

    https://blog.csdn.net/jerry____wang/article/details/52981745

    修改oneproxy的配置文件之后需要重启

    oneproxy 配置文件配置的表,数据库必须存在,不然会失败

    怎么查看oneproxy 执行sql,集合了那些表了....

    oneProxy

    参考: https://blog.csdn.net/wjc19911118/article/details/51375196?utm_source=copy
    可以和Mysql共同一台机器
    默认client port 3307
    mysql -utest -ptest -h 127.0.0.1 -P3307
    默认admin port 4041
    进入管理后台
    mysql -uadmin -pOneProxy -h 127.0.0.1 -P4041

    登录oneproxy 管理后台
    mysql -uadmin -pOneProxy -P4041 -h127.0.0.1

    1. 健康检查
      每秒钟Proxy会和后端进行通信,检测后端数据库状态。
      Markup: 正常状态,可以提供服务
      Markdown:异常状态,不可以提供服务
      查看状态
      查看后端机器: list backend;
      查看组:list group;
      查看链接池: list pool;
      查看日志文件:tail -100f oneproxy.log

    作者:coder_up
    来源:CSDN
    原文:https://blog.csdn.net/wjc19911118/article/details/51375196
    版权声明:本文为博主原创文章,转载请附上博文链接

    数据库中间件安装

    1. 下载安装包,解压且放在指定的目录下
      wget http://www.onexsoft.com/software/oneproxy-rhel6-linux64-v6.2.0-ga.tar.gz
      tar -zxvf oneproxy-rhel6-linux64-v6.2.0-ga.tar.gz
      mv oneproxy /usr/local/oneproxy
      oneproxy 官方博客 http://www.onexsoft.com/zh/category/oneproxy

    2. 分库分表

    3. 多集群管理

    水平分片管理 user01 user02 user03 user04 ...
    机器列表

    分库分表 有垂直切分,水平切分
    何谓垂直切分,即将表按照功能模块、关系密切程度划分出来,部署到不同的库上
    何谓水平切分,当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,例如userID散列,进行划分,然后存储到多个结构相同的表,和不同的库上

    分库分表问题:

    1. 事物问题
    2. 跨库跨表的join问题
    3. 额外的数据管理负担和数据运算压力
      参考: https://www.cnblogs.com/jshen/p/7682502.html
  • 相关阅读:
    Spring @Async开启异步任务
    Spring中@Async用法总结
    分布式任务调度平台XXL-JOB
    异常的概念和Java异常体系结构
    Java中主线程如何捕获子线程抛出的异常
    java主线程捕获子线程中的异常
    springboot线程池@Async的使用和扩展
    全面理解Java内存模型(JMM)及volatile关键字
    C++异常处理入门
    VC6下深入理解new[]和delete[](在多线程下new和delete的时候,必须选择上多线程库,不然可能造成进程崩溃)
  • 原文地址:https://www.cnblogs.com/zqsb/p/11051789.html
Copyright © 2011-2022 走看看