MySQL新增---DBLE開(kāi)源分布式中間件

來(lái)源:愛(ài)可生專員社區(qū)
DBLE 是企業(yè)級(jí)開(kāi)源分布式中間件铁追,江湖人送外號(hào) “MyCat Plus”季蚂;以其簡(jiǎn)單穩(wěn)定,持續(xù)維護(hù)琅束,良好的社區(qū)環(huán)境和廣大的群眾基礎(chǔ)得到了社區(qū)的大力支持

一. DBLE項(xiàng)目資料

DBLE官方網(wǎng)站:https://opensource.actionsky.com
可以詳細(xì)了解DBLE的背景和應(yīng)用場(chǎng)景扭屁,本文不涉及到的細(xì)節(jié)都可在官方文檔獲得更細(xì)節(jié)都信息;對(duì)于剛了解到同學(xué)涩禀,可以以本文為快速入門(mén)基礎(chǔ)

DBLE官方項(xiàng)目:https://github.com/actiontech/dble
如對(duì)源碼有興趣或者需要定制的功能的可以通過(guò)源碼編譯

DBLE下載地址:https://github.com/actiontech/dble/releases
建議下載最新的releases版本疯搅,下載tar壓縮包即可,如有源碼編譯需求的埋泵,可以下載源碼包

二. 環(huán)境準(zhǔn)備

2.1 安裝JDK環(huán)境

  1. DBLE是使用java開(kāi)發(fā)的幔欧,所以需要啟動(dòng)dble需要先在機(jī)器上安裝java版本1.8或以上,并且確保JAVA_HOME參數(shù)被正確的設(shè)置丽声;
  1. 這里通過(guò)yum源的方式安裝了openjdk礁蔗,同學(xué)們可以自行g(shù)oogle jdk的幾百種安裝方式,這里不在贅述雁社;
    yum install java-1.8.0-openjdk
    確認(rèn)java環(huán)境已配置完成:
    java -version
    openjdk version "1.8.0_191"
    OpenJDK Runtime Environment (build 1.8.0_191-b12)
    OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

2.2 安裝DBLE

  1. DBLE的安裝其實(shí)只要解壓下載的目錄就可以了浴井,非常簡(jiǎn)單。
mkdir -p $working_dir  
cd $working_dir  
tar -xvf actiontech-dble-$version.tar.gz  
cd $working_dir/dble/conf
  1. 安裝完成后霉撵,目錄如下

目錄     說(shuō)明
bin     dble命令:?jiǎn)?dòng)磺浙、重啟、停止等
conf    dble配置信息,本文重點(diǎn)關(guān)注
lib     dble引用的jar包
logs    日志文件徒坡,包括dble啟動(dòng)的日志和運(yùn)行的日志

2.3 配置DBLE

DBLE的配置文件都在conf目錄里面撕氧,這里介紹幾個(gè)常用的文件:

文件        說(shuō)明
server.xml  DBLE server相關(guān)參數(shù)定義,包括dble性能喇完,定時(shí)任務(wù)伦泥,端口,用戶配置等;本文主要涉及
            到訪問(wèn)用戶的配置
schema.xml  DBLE具體分片定義不脯,規(guī)定table和schema以及dataNode之間的關(guān)系府怯,指定每個(gè)表格使用哪
            種類型的分片方法,定義每個(gè)dataNode的連接信息等
rule.xml    DBLE實(shí)際用到的分片算法的配置

三. 應(yīng)用場(chǎng)景一(數(shù)據(jù)拆分)

3.1 后端MySQL節(jié)點(diǎn)

1. DBLE的架構(gòu)其實(shí)很好理解防楷,DBLE是代理中間件牺丙,DBLE后面就是物理數(shù)據(jù)庫(kù)。對(duì)于使用者來(lái)說(shuō)复局,訪問(wèn)的都是DBLE赘被,不會(huì)接觸到后端的數(shù)據(jù)庫(kù)。

我們先演示簡(jiǎn)單的數(shù)據(jù)拆分的功能肖揣。物理部署結(jié)構(gòu)如下表:
服務(wù)     IP:Port              說(shuō)明
DBLE    172.16.3.1:9066     DBLE實(shí)例民假,連接數(shù)據(jù)庫(kù)時(shí),連接此IP:Port
Mysql A 172.16.3.1:14014    物理數(shù)據(jù)庫(kù)實(shí)例A龙优,真正存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)
Mysql B 172.16.3.1:14015    物理數(shù)據(jù)庫(kù)實(shí)例B羊异,真正存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)

備注:為了演示簡(jiǎn)單,這里將實(shí)例都部署在了一臺(tái)機(jī)器上并用不同端口做區(qū)分彤断,同學(xué)們也可以用三臺(tái)機(jī)器來(lái)
做環(huán)境搭建
在MySQL A和MySQL B中創(chuàng)建庫(kù)表testdb.users來(lái)方便后續(xù)的驗(yàn)證野舶,表結(jié)構(gòu)如下:
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`user` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

3.2 server.xml

server.xml里可以配置跟DBLE自身相關(guān)的許多參數(shù),這里重點(diǎn)只關(guān)注下面這段訪問(wèn)用戶相關(guān)的配置宰衙,其他默認(rèn)即可

第一段 "< system >" 為DBLE的服務(wù)端口(默認(rèn)8066)和管理端口(默認(rèn)9066)的配置

  • 管理端口只能接受DBLE的管理命令平道,這里不做展開(kāi)
  • 服務(wù)端口即DBLE的業(yè)務(wù)訪問(wèn)端口,可以接受SQL語(yǔ)句

第二段“< user >”配置管理理用戶供炼,默認(rèn)為man1一屋,密碼為654321

  • 即可以通過(guò) mysql -P9066 -h 127.0.0.1 -u man1 -p654321來(lái)下發(fā)管理命令

第三段“< user >”配置業(yè)務(wù)用戶,配置了一個(gè)賬號(hào)test 密碼password,針對(duì)數(shù)據(jù)庫(kù)testdb,讀寫(xiě)權(quán)限都有袋哼,沒(méi)有針對(duì)表做任何特殊的權(quán)限冀墨,故把表配置做了注釋

  • 即可以通過(guò) mysql -P8066 -h 127.0.0.1 -utest -ppassword下發(fā)SQL語(yǔ)句
    <system>
        ...
        <!-- property name="serverPort">8066</property> -->
        <!--<property name="managerPort">9066</property> -->
        ...    
    </system>
    <user name="man1">
        <property name="password">654321</property>
        <property name="manager">true</property>
        <!-- manager user can't set schema-->
    </user>

    <user name="test">
        <property name="password">password</property>
        <property name="schemas">testdb</property>

        <!-- table's DML privileges  INSERT/UPDATE/SELECT/DELETE -->
        <!--
        <privileges check="false">
            <schema name="TESTDB" dml="0110" >
                <table name="tb01" dml="0000"></table>
                <table name="tb02" dml="1111"></table>
            </schema>
        </privileges>
         -->
    </user>
參數(shù)        說(shuō)明
user        用戶配置節(jié)點(diǎn)
name        登錄的用戶名,也就是連接DBLE的用戶名
password    登錄的密碼涛贯,也就是連接DBLE的密碼
schemas     數(shù)據(jù)庫(kù)名诽嘉,這里會(huì)和schema.xml中的配置關(guān)聯(lián)斩祭,多個(gè)用逗號(hào)分開(kāi)询刹,例如需要這個(gè)用戶需要管
            理兩個(gè)數(shù)據(jù)庫(kù)db1,db2,則配置db1,db2
privileges  配置用戶針對(duì)表的增刪改查的權(quán)限妥畏,具體見(jiàn)官方文檔稀余,這里不做展開(kāi)

3.3 schema.xml

schema.xml是最主要的配置項(xiàng)悦冀,我們將users用戶表按照取模的方式平均拆分到了MySQL A和MySQL B兩個(gè)數(shù)據(jù)數(shù)據(jù)庫(kù)實(shí)例上,
詳細(xì)請(qǐng)看配置文件:

<?xml version="1.0"?>
<!DOCTYPE dble:schema SYSTEM "schema.dtd">
<dble:schema xmlns:dble="http://dble.cloud/">

    <schema name="testdb">
        <table name="users" primaryKey="ID"  dataNode="dn1,dn2" rule="sharding-by-mod2" />
    </schema>

    <!-- 分片配置 -->
    <dataNode name="dn1" dataHost="Group1" database="testdb"/>
    <dataNode name="dn2" dataHost="Group2" database="testdb"/>

    <!-- 物理數(shù)據(jù)庫(kù)配置 -->
    <dataHost name="Group1" maxCon="1000" minCon="10" balance="0" switchType="1" slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <writeHost host="MySQLA" url="172.16.3.1:14014" user="test" password="password"/>
    </dataHost>

    <dataHost name="Group2" maxCon="1000" minCon="10" balance="0" switchType="1" slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <writeHost host="MySQLA" url="172.16.3.1:14015" user="test" password="password"/>
    </dataHost>
</dble:schema>

3.3.1 參數(shù)說(shuō)明

    1. schema 邏輯數(shù)據(jù)庫(kù)信息滚躯,此數(shù)據(jù)庫(kù)為邏輯數(shù)據(jù)庫(kù)雏门,name 與 server.xml 中 schema對(duì)應(yīng);
    1. dataNode 分片信息,此為分片節(jié)點(diǎn)的定義掸掏;分片名字和schema的dataNode對(duì)應(yīng)茁影;分片與下面的dataHost 物理實(shí)例進(jìn)行關(guān)聯(lián);
    1. dataHost 物理實(shí)例組信息丧凤,dataHost下可以掛載同組的讀寫(xiě)物理實(shí)例節(jié)點(diǎn)募闲,實(shí)現(xiàn)高可用或者讀寫(xiě)分離;

3.3.2 每個(gè)節(jié)點(diǎn)屬性逐一說(shuō)明

(1)schema屬性說(shuō)明:

    1. name 邏輯數(shù)據(jù)庫(kù)名愿待,與 server.xml 中的 schema 對(duì)應(yīng)浩螺;
    1. table:
      子屬性說(shuō)明 :
      ---name 表名,物理數(shù)據(jù)庫(kù)中表名
      ---dataNode 表存儲(chǔ)到哪些節(jié)點(diǎn)仍侥,多個(gè)節(jié)點(diǎn)用逗號(hào)分隔
      ---primaryKey 主鍵要出,用于主鍵緩存和自增識(shí)別,不作主鍵約束
      ---autoIncrement 是否自增
      ---rule 分片規(guī)則名农渊,具體規(guī)則下文 rule 詳細(xì)介紹

(2)dataNode屬性說(shuō)明:

    1. name 節(jié)點(diǎn)名患蹂,與 table 中 dataNode 對(duì)應(yīng)
    1. datahost 物理實(shí)例組名,與 datahost 中 name 對(duì)應(yīng)
    1. database 物理數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)名砸紊;

(3)dataHost屬性說(shuō)明:

    1. name 物理數(shù)據(jù)庫(kù)名传于,與 dataNode 中 dataHost 對(duì)應(yīng)
    1. balance 均衡負(fù)載的方式
    1. switchtype 寫(xiě)節(jié)點(diǎn)的高可用切換方式;等于1時(shí)醉顽,心跳不健康發(fā)生切換
    1. heartbeat 心跳檢測(cè)語(yǔ)句沼溜,注意語(yǔ)句結(jié)尾的分號(hào)要加
    1. writehost 寫(xiě)物理實(shí)例子屬性說(shuō)明 :
      ---host 物理實(shí)例名
      ---url 物理庫(kù)IP+Port
      ---user 物理庫(kù)用戶
      ---password 物理庫(kù)密碼

3.4 rule.xml

主要關(guān)注rule屬性,rule屬性的內(nèi)容來(lái)源于rule.xml這個(gè)文件游添,DBLE支持多種分表分庫(kù)的規(guī)則系草,基本能滿足你所需要的要求

  1. table中的rule屬性對(duì)應(yīng)的就是rule.xml文件中tableRule的name,具體有哪些拆分算法實(shí)現(xiàn),建議還是看下文檔唆涝。我這里選擇的sharding-by-mod2悄但,是hash算法的特例,就是將數(shù)據(jù)平均拆分石抡。因?yàn)槲液蠖耸莾膳_(tái)物理庫(kù)檐嚣,所以rule.xml中hashmod2對(duì)應(yīng)的partitionCountt為2,配置如下:
    <tableRule name="sharding-by-mod2">
        <rule>
            <columns>id</columns>
            <algorithm>hashmod2</algorithm>
        </rule>
    </tableRule>
    <function name="hashmod2" class="Hash">
        <property name="partitionCount">2</property>
        <property name="partitionLength">1</property>
    </function>

3.5 驗(yàn)證配置生效

3.5.1 啟動(dòng)DBLE

## 進(jìn)入DBLE安裝目錄啰扛,執(zhí)行start命令
./bin/dble start

## DBLE啟動(dòng)會(huì)自動(dòng)加載配置嚎京,需確認(rèn)進(jìn)程是否正常啟動(dòng),如啟動(dòng)失敗隐解,建議按照日志報(bào)錯(cuò)排查問(wèn)題鞍帝,正確啟動(dòng)日志如下:
STATUS | wrapper  | 2019/01/21 17:31:43 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2019/01/21 17:31:43 | Launching a JVM...
INFO   | jvm 1    | 2019/01/21 17:31:43 | OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0
INFO   | jvm 1    | 2019/01/21 17:31:44 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2019/01/21 17:31:44 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2019/01/21 17:31:44 |
INFO   | jvm 1    | 2019/01/21 17:31:45 | Server startup successfully. see logs in logs/dble.log

3.5.2 通過(guò)DBLE流量入口8066登陸數(shù)據(jù)庫(kù)

mysql  -P8066 -h 127.0.0.1 -utest -ppassword

3.5.3 插入兩條用戶記錄,并獲取DBLE側(cè)的查詢記錄

mysql> insert into users(id,user) values(1,"zhangsan");
Query OK, 1 row affected (0.09 sec)
mysql> insert into users(id,user) values(2,"lisi");
Query OK, 1 row affected (0.09 sec)


mysql> explain select * from users;
+-----------+----------+---------------------+
| DATA_NODE | TYPE     | SQL/REF             |
+-----------+----------+---------------------+
| dn1       | BASE SQL | select * from users |
| dn2       | BASE SQL | select * from users |
+-----------+----------+---------------------+
2 rows in set (0.00 sec)

mysql> select * from users;
+----+----------+
| id | user     |
+----+----------+
|  2 | lisi     |
|  1 | zhangsan |
+----+----------+
2 rows in set (0.01 sec)

3.5.4 獲取MySQLA和MySQLB的記錄

# mysql  -P14014 -h 127.0.0.1 -utest -ppassword
mysql> select * from users;
+----+----------+
| id | user     |
+----+----------+
|  2 | lisi     |
+----+----------+
1 rows in set (0.01 sec)

# mysql  -P14015 -h 127.0.0.1 -utest -ppassword
mysql> select * from users;
+----+----------+
| id | user     |
+----+----------+
|  1 | zhangsan |
+----+----------+
1 rows in set (0.01 sec)

從上面的驗(yàn)證流程煞茫,往DBLE插入的數(shù)據(jù)帕涌,會(huì)按照取模的方式下發(fā)到真實(shí)的物理庫(kù)摄凡,來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的自動(dòng)分片;同時(shí)通過(guò)DBLE下發(fā)的查詢會(huì)被DBLE自動(dòng)下發(fā)給實(shí)際的物理庫(kù)蚓曼,合并返回給客戶端亲澡,可以通過(guò)explain執(zhí)行計(jì)劃觀察到下發(fā)的實(shí)際下發(fā)給物理庫(kù)的SQL語(yǔ)句

四. 應(yīng)用場(chǎng)景二 (讀寫(xiě)分離)

DBLE除了做數(shù)據(jù)的分片功能外,也支持讀寫(xiě)分離功能纫版;開(kāi)啟讀寫(xiě)分離功能后床绪,可以將主實(shí)例上的讀壓力負(fù)載給原本stand by的從實(shí)例,從而擴(kuò)展整個(gè)集群的吞吐能力

4.1 后端MySQL節(jié)點(diǎn)

1. 們?cè)偻ㄟ^(guò)示例其弊,演示DBLE的讀寫(xiě)分離的功能癞己。物理部署結(jié)構(gòu)如下表:

服務(wù)        IP:Port              說(shuō)明
DBLE    172.16.3.1:9066     DBLE實(shí)例,連接數(shù)據(jù)庫(kù)時(shí)梭伐,連接此IP:Port
Mysql A 172.16.3.1:14014    物理數(shù)據(jù)庫(kù)實(shí)例A痹雅,master實(shí)例
Mysql B 172.16.3.1:14015    物理數(shù)據(jù)庫(kù)實(shí)例B,slave實(shí)例

備注:為了演示簡(jiǎn)單糊识,這里將實(shí)例都部署在了一臺(tái)機(jī)器上并用不同端口做區(qū)分练慕,同學(xué)們也可以用三臺(tái)機(jī)器
來(lái)做環(huán)境搭建

4.2 此場(chǎng)景中,我們將MySQL A和MySQL B搭建成主從復(fù)制關(guān)系技掏,同時(shí)我們只變更schema.xml的配置來(lái)完成讀寫(xiě)分離的架構(gòu)

schema.xml:

<?xml version="1.0"?>
<!DOCTYPE dble:schema SYSTEM "schema.dtd">
<dble:schema xmlns:dble="http://dble.cloud/">

    <schema name="testdb">
    </schema>

    <!-- 分片配置 -->
    <dataNode name="dn1" dataHost="Group1" database="testdb"/>

    <!-- 物理數(shù)據(jù)庫(kù)配置 -->
    <dataHost name="Group1" maxCon="1000" minCon="10" balance="3" switchType="1" slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <writeHost host="MySQLA" url="172.16.3.1:14014" user="test" password="password">
            <readHost host="MySQLB" url="172.16.3.1:14015" user="test" password="password"/>
        </writeHost>    
    </dataHost>
</dble:schema>

4.3 DBLE通過(guò)balance參數(shù)來(lái)控制讀寫(xiě)分離的負(fù)載策略铃将,寫(xiě)節(jié)點(diǎn)是否參與均衡與datahost的balance屬性有關(guān),本案例中我們將值調(diào)整為balance="3"哑梳,并定義了writeHost和readHost

balance的定義具體見(jiàn)下圖:

image.png

4.4 驗(yàn)證配置生效

通過(guò)DBLE管理入口9066登陸數(shù)據(jù)庫(kù)劲阎,注意這里我們通過(guò)管理入口的show @@datasource來(lái)驗(yàn)證讀寫(xiě)分離的狀態(tài)的正確性

(1)session1:

##session1 登陸DBLE的管理端,查看讀寫(xiě)分離的節(jié)點(diǎn)狀態(tài)
mysql  -P9066 -h 127.0.0.1 -uman1 -p654321
mysql> show @@datasource;
+--------+------------+-------+------+--------+------+------+---------+-----------+------------+
| NAME   | HOST       | PORT  | W/R  | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+--------+------------+-------+------+--------+------+------+---------+-----------+------------+
| MySQLA | 172.16.3.1 | 19388 | W    |     11 |   11 | 1000 |      11 |         0 |          0 |
| MySQLB | 172.16.3.1 | 19389 | R    |      1 |    4 | 1000 |       3 |         0 |          0 |
+--------+------------+-------+------+--------+------+------+---------+-----------+------------+
2 rows in set (0.00 sec)

(2)session2:

## session2  下發(fā)selct語(yǔ)句5次鸠真,查看READ_LOAD字段計(jì)數(shù)器的變化
mysql  -P8066 -h 127.0.0.1 -utest -ppassword
mysql> select * from users;

(3)session1:

##session1 返回DBLE的管理端悯仙,查看讀寫(xiě)分離的節(jié)點(diǎn)狀態(tài)
mysql> show @@datasource;
+--------+------------+-------+------+--------+------+------+---------+-----------+------------+
| NAME   | HOST       | PORT  | W/R  | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+--------+------------+-------+------+--------+------+------+---------+-----------+------------+
| MySQLA | 172.16.3.1 | 19388 | W    |     11 |   11 | 1000 |      11 |         0 |          0 |
| MySQLB | 172.16.3.1 | 19389 | R    |      1 |    4 | 1000 |       8 |         5 |          0 |
+--------+------------+-------+------+--------+------+------+---------+-----------+------------+
2 rows in set (0.00 sec)

從show @@datasource;這個(gè)管理命令上我們能夠觀測(cè)到READ_LOAD在slave節(jié)點(diǎn)上計(jì)數(shù)器增加了5次,也就是說(shuō)讀流量順利的下發(fā)到了slave節(jié)點(diǎn)吠卷;當(dāng)然大家也可以通過(guò)打開(kāi)mysql的general log來(lái)觀測(cè)讀寫(xiě)分離的情況

4.5 總結(jié)

本文通過(guò)兩個(gè)場(chǎng)景來(lái)講解DBLE的快速入門(mén)锡垄,希望通過(guò)簡(jiǎn)單的示例來(lái)給大家梳理DBLE的基本概念,幫助大家快速熟悉和使用DBLE這個(gè)中間件祭隔;更高階的使用方法和細(xì)節(jié)建議大家參考官方文檔货岭;

作者:愛(ài)可生開(kāi)源社區(qū)
鏈接:http://www.reibang.com/p/cd5911058c66
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)疾渴,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處千贯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市搞坝,隨后出現(xiàn)的幾起案子搔谴,更是在濱河造成了極大的恐慌,老刑警劉巖桩撮,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敦第,死亡現(xiàn)場(chǎng)離奇詭異峰弹,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)芜果,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)鞠呈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人师幕,你說(shuō)我怎么就攤上這事粟按∥芴玻” “怎么了霹粥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)疼鸟。 經(jīng)常有香客問(wèn)我后控,道長(zhǎng),這世上最難降的妖魔是什么空镜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任浩淘,我火速辦了婚禮,結(jié)果婚禮上吴攒,老公的妹妹穿的比我還像新娘张抄。我一直安慰自己,他們只是感情好洼怔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布署惯。 她就那樣靜靜地躺著,像睡著了一般镣隶。 火紅的嫁衣襯著肌膚如雪极谊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天安岂,我揣著相機(jī)與錄音轻猖,去河邊找鬼。 笑死域那,一個(gè)胖子當(dāng)著我的面吹牛咙边,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播次员,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼样眠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了翠肘?” 一聲冷哼從身側(cè)響起檐束,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎束倍,沒(méi)想到半個(gè)月后被丧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體盟戏,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年甥桂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柿究。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡黄选,死狀恐怖蝇摸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情办陷,我是刑警寧澤貌夕,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站民镜,受9級(jí)特大地震影響啡专,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜制圈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一们童、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鲸鹦,春花似錦慧库、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至嵌戈,卻和暖如春覆积,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背熟呛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工宽档, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庵朝。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓吗冤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親九府。 傳聞我的和親對(duì)象是個(gè)殘疾皇子椎瘟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 實(shí)現(xiàn)MySQL讀寫(xiě)分離的前提是我們已經(jīng)將MySQL主從復(fù)制配置完畢,可參考我上一篇關(guān)于MySQL主從復(fù)制的文章侄旬。讀...
    Jerry_Liang閱讀 24,020評(píng)論 4 35
  • 一肺蔚、MyCat簡(jiǎn)介 1.什么是MyCat MyCat是目前最流行的基于Java語(yǔ)言編寫(xiě)的數(shù)據(jù)庫(kù)中間件,是一個(gè)實(shí)現(xiàn)了...
    青年心路閱讀 50,245評(píng)論 0 30
  • 轉(zhuǎn)載:https://www.cnblogs.com/joylee/p/7513038.html 學(xué)會(huì)數(shù)據(jù)庫(kù)讀寫(xiě)分...
    Leo_df55閱讀 3,986評(píng)論 0 3
  • 曾經(jīng)滄海難為水 已去光陰不復(fù)還
    lovetMi閱讀 411評(píng)論 0 0
  • 1 我從一場(chǎng)大火中醒來(lái)儡羔,身上的白裙已被四周的灰燼染得污黑宣羊。眼前的山洞中彌漫著火煙璧诵,但這些致命的白霧、高溫與四周被火...
    顏先生Yan閱讀 712評(píng)論 0 2