開源分佈式中間件DBLE容器化快速安裝部署

原創:愛可生開源社區mysql


DBLE是基於開源項目MyCat發展的企業級開源分佈式中間件,適用於高併發及TB級海量數據處理場景;江湖人送外號 「MyCat Plus」;其簡單穩定,持續維護,良好的社區環境和廣大的羣衆基礎使DBLE獲得了社區的大力支持。linux

開源分佈式中間件DBLE:git

3月1日,DBLE 最新版本 2019 農曆年首發對新版本的新增特性進行簡單說明,本期對新增特性之一的docker鏡像如何用於快速開始進行舉例說明。併發

 

快速開始(docker-compose)

1. 關於本節

  • 如何快速使用DBLE的docker-compose文件來啓動一個DBLE的quick start

  • 一個按照自定義的配置和SQL腳原本啓動DBLE quick start的用例

2. 安裝依賴

  • 安裝docker

  • 安裝docker-compose

  • 安裝MySQL鏈接工具,用於進行鏈接測試觀察結果

3.安裝過程

從DBLE項目中下載最新的docker-compose.yml文件:

https://raw.githubusercontent.com/actiontech/dble/master/docker-images/docker-compose.yml

使用docker-compose up命令直接啓動dble-server,compose配置文件會從dockerhub拉取鏡像並最終啓動DBLE。

下載docker-compose.yml,進入對應目錄:

docker-compose up -d
注意:一個建立的3個容器:其中兩個爲MySQL容器,它們將端口3306映射到Docker宿主機的端口33061和33062;dble容器中端口8066和9066映射到Docker主機上的相同端口;

4.鏈接並使用

使用準備好的MySQL鏈接工具鏈接主機的8066或者9066端口,在docker的默認配置中:

  • 8066 端口(服務端口可以執行SQL語句)的用戶爲 root/123456

  • 9066 端口(管理端口可以執行管理語句)的用戶爲 man1/654321

#connect dble server port
mysql -P8066 -u root -p123456 -h 127.0.0.1 
#connect dble manager port
mysql -P9066 -u man1 -p123456 -h 127.0.0.1
#connect mysql1
mysql -P33061 -u root -p123456 -h 127.0.0.1 
#connect mysql2
mysql -P33062 -u root -p123456 -h 127.0.0.1

請在dble-server容器中查閱/opt/dble/conf/schema.xml文件。

5.環境清理

使用完成或者進行環境重建的時候使用docker-compose stop/down來進行環境的清理:

docker-compose stop

or

docker-compose down

6.使用自定義配置啓動DBLE

在這裏介紹下如何使用自定義的DBLE本地配置來啓動docker-compose中的DBLE。首先,簡單描述下默認docker-compose.yml執行的過程,dble-compose挨個啓動容器,而且在最終啓動dble-server的時候調用。

存在於鏡像actiontech/dble:latest目錄下的/opt/dble/bin/wait-for-it.sh腳本等待指定的(默認爲MySQL1容器的MySQL服務端口)TCP端口啓動;

待到指定TCP端口啓動以後調用初始化腳本/opt/dble/bin/docker_init_start.sh對於dble-server這個容器進行初始化(替換配置文件,啓動DBLE,執行SQL文件)。

下面是默認的docker_init_start.sh腳本:

#!/bin/sh

echo "dble init&start in docker"

sh /opt/dble/bin/dble start
sh /opt/dble/bin/wait-for-it.sh 127.0.0.1:8066
mysql -P9066 -u man1 -h 127.0.0.1 -p654321 -e "create database @@dataNode ='dn1,dn2,dn3,dn4'"
mysql -P8066 -u root -h 127.0.0.1 -p123456 -e "source /opt/dble/conf/testdb.sql" testdb

echo "dble init finish"

/bin/bash

能夠輕易的看出腳本的內容很是簡單,啓動dble->等待DBLE服務啓動->執行DBLE管理命令create database在後端MySQL數據庫中建立database->執行初始化SQL腳本在DBLE中建立表和插入初始化數據。

因此當須要使用非默認的狀況進行啓動dble-server容器時須要一如下幾個基本步驟:

  • 須要按照以上的模塊化步驟編寫一個本身的初始化sh文件,而後照着須要的步驟對於DBLE進行啓動和初始化

  • 在dble-server的啓動配置中添加volumes項,將linux本地的配置文件和初始化文件存放目錄掛載至dble-server容器內部(注意DBLE本地放在/opt/dble下)

  • 修改dble-server的啓動命令,將初始化腳本修改成自定義的容器內部的初始化腳本

舉例

docker-compose.yml修改以下部分:

dble-server:
        image: actiontech/dble:latest
        container_name: dble-server
        hostname: dble-server
        privileged: true
        stdin_open: true
        tty: true
        volumes:
            - ./:/opt/init/
        command: ["/opt/dble/bin/wait-for-it.sh", "backend-mysql1:3306","--","/opt/init/customized_script.sh"]
        ports:
            - "8066:8066"
            - "9066:9066"
        depends_on:
            - "mysql1"
            - "mysql2"
        networks:
            net:
              ipv4_address: 172.18.0.5

對應本地目錄./存在如下文件:

schema.xml rule.xml server.xml init.sql customized_script.sh

腳本customized_script.sh中的內容爲:

#!/bin/sh

echo "dble init&start in docker"

cp /opt/init/server.xml /opt/dble/conf/
cp /opt/init/schema.xml /opt/dble/conf/
cp /opt/init/rule.xml /opt/dble/conf/

sh /opt/dble/bin/dble start
sh /opt/dble/bin/wait-for-it.sh 127.0.0.1:8066
mysql -P9066 -u man1 -h 127.0.0.1 -p654321 -e "create database @@dataNode ='dn1,dn2,dn3,dn4'"
mysql -P8066 -u root -h 127.0.0.1 -p123456 -e "source /opt/init/init.sql" testdb

echo "dble init finish"

/bin/bash

以上是對如何快速使用DBLE的docker-compose文件來啓動一個DBLE的quick start的描述說明及具體舉例,

相關文章
相關標籤/搜索