2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

.NET Core 微服務(wù)-Mycat

 蘭亭文藝 2019-08-06

作者:AntSpace

鏈接:https://www.cnblogs.com/xuyongsong/p/11220789.html

一、前言

1.1  分布式數(shù)據(jù)庫

隨著IT行業(yè)的迅猛發(fā)展,行業(yè)應(yīng)用系統(tǒng)的數(shù)據(jù)規(guī)模呈現(xiàn)爆炸式增長,對數(shù)據(jù)庫的數(shù)據(jù)處理能力要求越來越高,分布式數(shù)據(jù)庫正是因此應(yīng)運而生。

分布式數(shù)據(jù)庫特點包括:

透明性:用戶不必關(guān)心后臺數(shù)據(jù)庫的具體實現(xiàn)

擴(kuò)展性:能夠根據(jù)系統(tǒng)壓力情況進(jìn)行擴(kuò)展

可靠性:如果其中一臺服務(wù)器宕機(jī),備用服務(wù)器能夠自動切換繼續(xù)提供服務(wù)

高性能:

1.2  Mycat介紹

Mycat(http://www./)是一個支持mysql、sql server等數(shù)據(jù)庫集群化部署的中間件。它由Amoeba和cobar發(fā)展而來。

二、負(fù)載均衡

三、測試環(huán)境

四、測試腳本

CREATE TABLE `employee` (
`ID` int(11) NOT NULL,
`NAME` varchar(100) default NULL,
`SHARDING_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`)
)
INSERT INTO employee(ID,NAME,SHARDING_ID) VALUES ('6', 'amos', '10000');

五、軟件安裝

首先安裝mycat-server、mycat-eye、zookeeper和navicat for mysql

六、服務(wù)啟動

6.1 、啟動mycat

6.1.1、安裝java環(huán)境

1、  安裝jdk

2、  配置環(huán)境變量

JAVA_HOME=C:Program FilesJavajdk1.8.0_131

CLASSPATH=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;

Path =%JAVA_HOME%in;%JAVA_HOME%jrein;

6.1.2、啟動mycat服務(wù)

在windows8操作系統(tǒng)上啟動mycat服務(wù),命令如下

cmd 

cd /d D:EC-OFCJavaMycatMycat-server-1.6mycatin

startup_nowrap.bat

6.1.3、連接mycat

6.1.3.1、navicat連接

使用navicat連接mycat,默認(rèn)端口為8066,密碼123456

6.1.3.2、DOS鏈接

cmd
cd /d C:Program FilesMySQLMySQL Server 5.7in
mysql -uroot -p123456 -P8066

注意:如果需要使用如show @@datasource命令時,需要連接9066端口而不是8066

6.2 、啟動zookeeper

D:EC-OFC開發(fā)工具zookeeper-3.4.10inzkServer.bat

6.3 、啟動mycat-eye

D:EC-OFCJavaMycatmycat-webstart.bat

七、寫集群

7.1  拓?fù)鋱D

7.2  配置文件

<?xml version='1.0'?>
<!DOCTYPEmycat:schemaSYSTEM'schema.dtd'>
<mycat:schema xmlns:mycat='http://cat/'>
<schema name='TESTDB' checkSQLschema='false' sqlMaxLimit='100'>
<table name='employee' primaryKey='ID' dataNode='dn1,dn2'/>
</schema>
<dataNode name='dn1' dataHost='host1' database='db1'/>
<dataNode name='dn2' dataHost='host2' database='db1'/>
<dataHost name='host1' maxCon='1000' minCon='10' balance='1'
writeType='0' dbType='mysql' dbDriver='native' switchType='1' slaveThreshold='100'>

<heartbeat>select user()</heartbeat>
<writeHost host='hostM1' url='120.77.80.215:3306' user='test' password='123456'>
</writeHost>
</dataHost>
<dataHost name='host2' maxCon='1000' minCon='10' balance='1'
writeType='0' dbType='mysql' dbDriver='native' switchType='1' slaveThreshold='100'>

<heartbeat>select user()</heartbeat>
<writeHost host='hostM2' url='10.3.30.238:3306' user='test' password='123456'>
</writeHost>
</dataHost>
</mycat:schema>

八、主從配置

8.1  業(yè)務(wù)要求

Master掛掉時,Slave還能提供讀服務(wù)。

8.2  配置步驟

注意每臺mysql服務(wù)器的server-id必須唯一

第一步:

在10.3.30.161中創(chuàng)建一個10.3.30.238主機(jī)中可以登錄的MySQL用戶

用戶:mysql238

密碼:123456

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql238’@’10.3.30.238’ IDENTIFIED BY ‘123456’;

mysql>FLUSH PRIVILEGES;

第二步:

需要先在C:ProgramDataMySQLMySQL Server 5.7my.ini文件中添加log-bin=mysql-bin

查看10.3.30.161MySQL服務(wù)器二進(jìn)制文件名與位置

mysql>SHOW MASTER STATUS;

第三步:

告知二進(jìn)制文件名與位置

在10.3.30.238中執(zhí)行:

mysql>CHANGE MASTER TO

MASTER_HOST='10.3.30.161',

MASTER_USER='mysql238',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mybin.000001',

MASTER_LOG_POS=154;


完成主從復(fù)制配置

8.3  驗證配置

在10.3.30.238中

mysql> START SLAVE;   #開啟復(fù)制

mysql>SHOW SLAVE STATUSG   #查看主從復(fù)制是否配置成功

當(dāng)看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態(tài)正常

8.4  配置文件

switchType='-1'意味著當(dāng)主掛掉的時候,不進(jìn)行自動切換,即hostS1并不會被提升為主,仍只提供讀的功能。這就避免了將數(shù)據(jù)寫進(jìn)slave的可能性,單純的MySQL主從集群并不允許將數(shù)據(jù)寫進(jìn)slave中,除非配置的是雙master。

<mycat:schema xmlns:mycat='http://cat/'>
<schema name='TESTDB' checkSQLschema='false' sqlMaxLimit='100'>
<table name='employee' primaryKey='ID' dataNode='dn1'/>
</schema>
<dataNode name='dn1' dataHost='host1' database='db1'/>
<dataHost name='host1' maxCon='1000' minCon='10' balance='1'
writeType='0' dbType='mysql' dbDriver='native' switchType='-1' slaveThreshold='100'>

<heartbeat>select user()</heartbeat>
<writeHost host='hostM1' url='10.3.30.161:3306' user='test' password='123456'>
<readHost host='hostR1' url='120.77.80.215:3306' user='test' password='123456'/>
</writeHost>
<writeHost host='hostS1' url='10.3.30.238:3306' user='test' password='123456'>
</writeHost>
</dataHost>
</mycat:schema>

九、Haproxy配置

9.1  拓?fù)鋱D

9.2  配置文件

此處為haproxy配置文件

#global
maxconn 1500
nbproc 1
daemon

defaults
mode tcp
retries 3
option abortonclose
maxconn 32000
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms
log 127.0.0.1 local0 err
listen admin_stats
bind :48800
stats uri /admin-status
stats auth admin:admin
mode http
option httplog
listen mycat_servers
bind :3307 ## 綁定端口
mode tcp
option tcplog
#balance source
server server238 10.3.30.238:8066 check port 8066 weight 1 check
server server84 10.3.6.84:8066 check port 8066 weight 1 check

mysql客戶端或者應(yīng)用程序可以通過如上配置的127.0.0.1:3307端口鏈接haproxy實現(xiàn)鏈接mycat集群的目的。

十、注意事項

1、主主復(fù)制配置文件中auto_increment_increment和auto_increment_offset只能保證主鍵不重復(fù),卻不能保證主鍵有序。

2、當(dāng)配置完成Slave_IO_Running、Slave_SQL_Running不全為YES時,show slave statusG信息中有錯誤提示,可根據(jù)錯誤提示進(jìn)行更正。

3、Slave_IO_Running、Slave_SQL_Running不全為YES時,大多數(shù)問題都是數(shù)據(jù)不統(tǒng)一導(dǎo)致。

常見出錯點:

1、兩臺數(shù)據(jù)庫都存在db數(shù)據(jù)庫,而第一臺MySQL db中有tab1,第二臺MySQL db中沒有tab1,那肯定不能成功。

2、已經(jīng)獲取了數(shù)據(jù)的二進(jìn)制日志名和位置,又進(jìn)行了數(shù)據(jù)操作,導(dǎo)致POS發(fā)生變更。在配置CHANGE MASTER時還是用到之前的POS。

3、stop slave后,數(shù)據(jù)變更,再start slave。出錯。

終極更正法:重新執(zhí)行一遍CHANGE MASTER就好了。


編號346,輸入編號直達(dá)本文

●輸入m獲取文章目錄

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多