zoukankan      html  css  js  c++  java
  • DBLE快速开始

    dble 简介与整体架构

    dble简介

    dble是上海爱可⽣信息技术股份有限公司基于mysql的⾼可扩展性的分布式中间件,存在以下⼏个优势特性:

    1. 数据⽔平拆分 随着业务的发展,您可以使⽤dble来替换原始的单个MySQL实例。
    2. 兼容Mysql 与MySQL协议兼容,在⼤多数情况下,您可以⽤它替换MySQL来为你的应⽤程序提供新的存储,⽽⽆需更改任何代码。
    3. ⾼可⽤性 dble服务器可以⽤作集群,业务不会受到单节点故障的影响。
    4. SQL⽀持 ⽀持SQL 92标准和MySQL⽅⾔。我们⽀持复杂的SQL查询,如group by,order by,distinct,join,union,sub-query等等。
    5. 复杂查询优化 优化复杂查询,包括但不限于全局表连接分⽚表,ER关系表,⼦查询,简化选择项等。
    6. 分布式事务⽀持 使⽤两阶段提交的分布式事务。您可以为了性能选择普通模式或者为了数据安全采⽤XA模式。当然,XA模式依赖于MySQL-5.7的XATransaction,MySQL节点的⾼可⽤ 性和数据的可靠性。
    dble由来
    • dble 是基于开源项⽬MyCat的,江湖人送外号 “MyCat Plus”
    • DBLE 定位是企业级开源分布式中间件,专注于MySQL,取消了对其他数据库的⽀持,对兼容性,复杂查询和分布式事务的⾏为进⾏了深⼊的改进/优化。 当然,还修复了⼀些bugs。

    DBLE项目资料

    DBLE官方网站:https://opensource.actionsky.com
    可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础
    
    DBLE官方项目:https://github.com/actiontech/dble
    如对源码有兴趣或者需要定制的功能的可以通过源码编译
    
    DBLE下载地址:https://github.com/actiontech/dble/releases
    建议下载最新的releases版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包
    

    快速开始

    介绍如何使⽤dble安装包快速部署并启动⼀个dble服务,并简单了解dble的使⽤和管理

    1.安装准备
    • 两个启动的MySQL实例

      dble是通过连接mysql数据库实例来进⾏数据的存储,所以请⾄少准备两个正在运⾏的mysql实例

      主机 IP 端口 说明
      study01 10.186.65.68 8066/9066 DBLE实例,服务端口8066,管理端口9066
      study01 10.186.65.71 5555 MySQL实例M1
      study01 10.186.65.72 4444 MySQL实例M2
    • JVM环境

      dble是使⽤java开发的,所以需要启动dble您先需要在机器上安装java版本1.8或以上,并且确保JAVA_HOME参数被正确的设置

      [root@study01 ~]# yum install -y java
      
      [root@study01 ~]# java -version
      openjdk version "1.8.0_292"
      OpenJDK Runtime Environment (build 1.8.0_292-b10)
      OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
      
    2.下载并安装
    • 通过此链接( https://github.com/actiontech/dble/releases )下载最新版本的安装包

    • 解压到指定文件夹中

      tar -zxvf dble-3.21.02.0-20210419095547-linux.tar.gz -C /data
      
      [root@study01 ~]# cd /data/dble/
      [root@study01 dble]# ls
      algorithm  bin  conf  lib  logs  version.txt
      
    3.配置文件基础

    DBLE的配置文件都在conf目录里面

    [root@study01 dble]# cd conf/
    [root@study01 conf]# ls
    bootstrap.dynamic.cnf    dbseq.sql        partition-enum.txt          sequence_db_conf.properties
    bootstrap_template.cnf   db_template.xml  partition-number-range.txt  sharding_template.xml
    cacheservice.properties  ehcache.xml      partition-pattern.txt       template_table.sql
    cluster_template.cnf     log4j2.xml       sequence_conf.properties    user_template.xml
    
    [root@study01 conf]# cp -a bootstrap_template.cnf bootstrap.cnf
    [root@study01 conf]# cp -a cluster_template.cnf cluster.cnf 
    [root@study01 conf]# cp -a db_template.xml db.xml
    [root@study01 conf]# cp -a sharding_template.xml sharding.xml 
    [root@study01 conf]# cp -a user_template.xml user.xml 
    
    • 配置⽂档列表以及相关对应功能

      • cluster.cnf:集群参数配置
      • bootstrap.cnf:实例参数配置,包括JVM启动参数,dble性能,定时任务,端⼝等
      • user.xml:dble ⽤⼾配置 db.xml:数据库相关配置
      • sharding.xml:数据拆分相关配置
      • log4j.xml:log4j2.xml,配置⽇志参数
    • 重要⽇志及⽂件

      • /logs/wrapper.log:启动⽇志,如果dble启动失败,将会有⽇志出现在这个⽂件中
      • /logs/dble.log:dble⽇志,⽇志记录并反馈dble执⾏过程中的重要信息
    4.dble的初始化配置

    修改db.xml,找到其中的 instanceM1 和 instanceM2,将数据库信息替换成已经安装启动的 MySQL 实例:

    <dbInstance name="instanceM1" url="ip1:3306" user="your_user" password="your_psw" maxCon="1000" minCon="10" primary="true">
    
    <dbInstance name="instanceM2" url="ip2:3306" user="your_user" password="your_psw" maxCon="1000" minCon="10" primary="true"/>
    
    5.启动DBLE
    • 启动命令
    [root@study01 dble]# ./bin/dble start
    Starting dble-server...
    
    
    • 如果启动失败请使⽤此命令查看失败的详细原因 tail -f logs/wrapper.log
    6.连接DBLE
    • 安装MySQL客户端

      [root@study01 dble]# yum install -y mysql
      
      [root@study01 dble]# mysql -V
      mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
      
    • 使⽤mysql客⼾端直接连接dble管理端⼝,默认用户man1 密码654321

      mysql -uman1 -p -h127.0.0.1 -P9066
      
    • 您可以使⽤mysql⼀样的⽅式执⾏以下语句⽤于在实例上建⽴虚拟结点对应的schema

      create database @@shardingnode='dn$1-6';
      
      • 在后端MySQL实例M2上查看建好的schema
      mysql> show databases;
      +--------------------+
      | Database           |
      +--------------------+
      | db_2               |
      | db_4               |
      | db_6               |
      
    • 使⽤mysql客⼾端直接连接dble服务,默认用户root 密码123456

    [root@study01 dble]# mysql -uroot -p -h127.0.0.1 -P8066
    
    MySQL [(none)]> show databases;
    +----------+
    | DATABASE |
    +----------+
    | testdb   |
    +----------+
    
    • 您可以使⽤mysql⼀样的⽅式执⾏以下语句
    use testdb; 
    
    drop table if exists tb_enum_sharding; 
    
    create table if not exists tb_enum_sharding ( id int not null, code int not null, content varchar(250) not null, primary key(id) )engine=innodb charset=utf8; 
    
    insert into tb_enum_sharding values(1,10000,'1'),(2,10010,'2'),(3,10000,'3'),(4,10010,'4');
    
      • 管理端口只能接受DBLE的管理命令,这里不做展开
      • 服务端口即DBLE的业务访问端口,可以接受SQL语句

    因为有悔,所以披星戴月;因为有梦,所以奋不顾身! 个人博客首发:easydb.net 微信公众号:easydb 关注我,不走丢!

    因为有悔,所以披星戴月;因为有梦,所以奋不顾身! 个人博客首发:easydb.net 微信公众号:easydb 关注我,不走丢!
  • 相关阅读:
    图片api
    基于NoneBot的天气查询插件
    在Linux云服务上运行酷Q机器人并DIY自己的功能
    破解zip密码的几种方法
    攻防世界wp--crypto 幂数加密
    攻防世界wp--crypto Caesar
    攻防世界wp--web command_execution
    攻防世界wp--web weak_auth
    python中yield的用法以及和yield from的区别
    Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq
  • 原文地址:https://www.cnblogs.com/easydb/p/14753642.html
Copyright © 2011-2022 走看看