自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MyCat數(shù)據(jù)庫(kù)的基礎(chǔ)配置及使用

數(shù)據(jù)庫(kù)
MyCat是一個(gè)徹底開源的面向企業(yè)應(yīng)用開發(fā)的大數(shù)據(jù)庫(kù)集群,支持事務(wù)、ACID,是可以替代MySQL的加強(qiáng)版數(shù)據(jù)庫(kù)。MyCat被視為MySQL集群的企業(yè)級(jí)數(shù)據(jù)庫(kù),用來替代昂貴的Oracle集群,它是整合了內(nèi)存緩存技術(shù)、NoSQL技術(shù)、HDFS大數(shù)據(jù)的新型SQL Server,是結(jié)合了傳統(tǒng)數(shù)據(jù)庫(kù)和新型分布式數(shù)據(jù)倉(cāng)庫(kù)的新一代企業(yè)級(jí)數(shù)據(jù)庫(kù)產(chǎn)品,也是一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)中間件。

一、為什么需要分布式數(shù)據(jù)據(jù)庫(kù)

隨著計(jì)算機(jī)和信息技術(shù)的迅猛發(fā)展,行業(yè)應(yīng)用系統(tǒng)的規(guī)模迅速擴(kuò)大,行業(yè)應(yīng)用所產(chǎn)生的數(shù)據(jù)量呈爆炸式增長(zhǎng),動(dòng)輒達(dá)到數(shù)百TB甚至數(shù)百PB的規(guī)模,已遠(yuǎn)遠(yuǎn)超出傳統(tǒng)計(jì)算技術(shù)和信息系統(tǒng)的處理能力,集中式數(shù)據(jù)庫(kù)面對(duì)大規(guī)模數(shù)據(jù)處理逐漸表現(xiàn)出其局限性。因此,人們希望尋找一種能快速處理數(shù)據(jù)和及時(shí)響應(yīng)用戶訪問的方法,也希望對(duì)數(shù)據(jù)進(jìn)行集中分析、管理和維護(hù)。這已經(jīng)成為迫切需求。

分布式數(shù)據(jù)庫(kù)是在集中式數(shù)據(jù)庫(kù)的基礎(chǔ)上發(fā)展起來的,是計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫(kù)是指數(shù)據(jù)在物理上分布而在邏輯上集中管理的數(shù)據(jù)庫(kù)系統(tǒng)。物理上分布是指數(shù)據(jù)分布在物理位置不同并由網(wǎng)絡(luò)連接的節(jié)點(diǎn)或站點(diǎn)上;邏輯上集中是指各數(shù)據(jù)庫(kù)節(jié)點(diǎn)之間的邏輯上是一個(gè)整體,并由統(tǒng)一的數(shù)據(jù)庫(kù)管理系統(tǒng)管理。不同的節(jié)點(diǎn)分布可以跨不同的機(jī)房、城市甚至國(guó)家。

二、分布式數(shù)據(jù)庫(kù)的特點(diǎn)

分布式數(shù)據(jù)庫(kù)具有透明性、數(shù)據(jù)冗余性、易于擴(kuò)展性、自治性等特點(diǎn),還具有經(jīng)濟(jì)、性能優(yōu)越、響應(yīng)速度更快、靈活的體系結(jié)構(gòu)、易于集成現(xiàn)有系統(tǒng)等特點(diǎn)。

分布式數(shù)據(jù)庫(kù)盡管有著天生的高貴血統(tǒng),但它依賴調(diào)整網(wǎng)絡(luò),對(duì)事務(wù)的處理遠(yuǎn)沒有傳統(tǒng)數(shù)據(jù)庫(kù)成熟,在很長(zhǎng)一段時(shí)間內(nèi)分布式數(shù)據(jù)存儲(chǔ)將與傳統(tǒng)數(shù)據(jù)存儲(chǔ)共存。

三、MyCat數(shù)據(jù)庫(kù)中間件簡(jiǎn)介

MyCat是一個(gè)徹底開源的面向企業(yè)應(yīng)用開發(fā)的大數(shù)據(jù)庫(kù)集群,支持事務(wù)、ACID,是可以替代MySQL的加強(qiáng)版數(shù)據(jù)庫(kù)。MyCat被視為MySQL集群的企業(yè)級(jí)數(shù)據(jù)庫(kù),用來替代昂貴的Oracle集群,它是整合了內(nèi)存緩存技術(shù)、NoSQL技術(shù)、HDFS大數(shù)據(jù)的新型SQL Server,是結(jié)合了傳統(tǒng)數(shù)據(jù)庫(kù)和新型分布式數(shù)據(jù)倉(cāng)庫(kù)的新一代企業(yè)級(jí)數(shù)據(jù)庫(kù)產(chǎn)品,也是一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)中間件。

MyCat是通過Cobar改良而生。MyCat支持Oracle、PostgreSQL,從1.3版本開始支持NoSQL(SequoiaDB及MongoDB)并引入了Druid解析器。2016年MyCat發(fā)布了1.5版本,2018年發(fā)布了 1.6.6版本 。目前MyCat2.0項(xiàng)目已經(jīng)啟動(dòng),核心代碼已經(jīng)提交(https://github.com/MyCatApache/MyCat2.git)。

四、MyCat核心概念詳解

4.1 邏輯庫(kù)(schema)

通常在實(shí)際應(yīng)用中,業(yè)務(wù)開發(fā)人員并不需要知道中間件的存在,只需要關(guān)注數(shù)據(jù)庫(kù),所以數(shù)據(jù)庫(kù)中間件可以被當(dāng)作一個(gè)或多個(gè)數(shù)據(jù)庫(kù)集群構(gòu)成的邏輯庫(kù)。

[[276900]]

4.2 邏輯表(table)

既然有邏輯庫(kù),就會(huì)有邏輯表。在分布式數(shù)據(jù)庫(kù)中,對(duì)于應(yīng)用來說,讀寫數(shù)據(jù)的表就是邏輯表。邏輯表可以分布在一個(gè)或多個(gè)分片庫(kù)中,也可以不分片。

1)分片表

分片表是指將數(shù)據(jù)量很大的表切分到多個(gè)數(shù)據(jù)庫(kù)實(shí)例中,所有分片組合起來構(gòu)成了一張完整的表。例如在MyCat上配置t_node的分片表,數(shù)據(jù)按照規(guī)則被切分到dn1、dn2兩個(gè)節(jié)點(diǎn)。

  1. <table name=”t_node” primaryKey=”vid” autoIncrement=”true” dataNode=”nd1,dn2” rule=”rule1” /> 

2)非分片表

并非所有的表在數(shù)量很大時(shí)都需要進(jìn)行分片。非分片表是相對(duì)分片表而言的,不需要進(jìn)行數(shù)據(jù)切分的表。如下面配置中的t_node只存在于節(jié)點(diǎn)dn1上。

  1. <table name=”t_node” primaryKey=”vid” autoIncrement=”true” dataNode=”dn1” /> 

3)ER表

關(guān)系型數(shù)據(jù)庫(kù)是基于實(shí)體關(guān)系模型(Entity Relationship Model)的,MyCat中的ER表便來源于此。基于此思想,MyCat提出了基于E-R關(guān)系的數(shù)據(jù)分片策略,子表的記錄與其所關(guān)聯(lián)的父表的記錄存放在同一個(gè)數(shù)據(jù)分片上,即子表依賴于父表,通過表分組(Table Group)保證數(shù)據(jù)關(guān)聯(lián)查詢不會(huì)跨庫(kù)操作。

表分組是解決跨分片數(shù)據(jù)關(guān)聯(lián)查詢的一種很好的思路,也是數(shù)據(jù)切分的一條重要規(guī)則。

4)全局表

在一個(gè)真實(shí)的業(yè)務(wù)場(chǎng)景中往往存在大量類似的字典表,這些字典表中的數(shù)據(jù)變動(dòng)不頻繁,而且數(shù)據(jù)規(guī)模不大,很少有超過數(shù)十萬條的記錄。

當(dāng)業(yè)務(wù)表因?yàn)橐?guī)模進(jìn)行分片后,業(yè)務(wù)表與這些附屬的字典表之間的關(guān)聯(lián)查詢就成了比較棘手的問題,所以在MyCat中通過數(shù)據(jù)冗余來解決這類表的關(guān)聯(lián)查詢,即所有分片都復(fù)制了一份數(shù)據(jù),我們把這些冗余數(shù)據(jù)的表定義為全局表。

數(shù)據(jù)冗余是解決跨分片數(shù)據(jù)關(guān)聯(lián)查詢的一種很好的思路,也是數(shù)據(jù)切分規(guī)劃的另一條重要規(guī)則。

4.3 分片節(jié)點(diǎn)(dataNode)

將數(shù)據(jù)切分后,一個(gè)大表被分到不同的分片數(shù)據(jù)庫(kù)上,每個(gè)表分片所在的數(shù)據(jù)庫(kù)是分片節(jié)點(diǎn)。

4.4 節(jié)點(diǎn)主機(jī)(dataHost)

將數(shù)據(jù)切分后,每個(gè)分片節(jié)點(diǎn)不一定會(huì)獨(dú)占一臺(tái)機(jī)器,同一臺(tái)機(jī)器上可以有多個(gè)分片數(shù)據(jù)庫(kù),這樣一個(gè)或多個(gè)分片節(jié)點(diǎn)所在的機(jī)器就是節(jié)點(diǎn)主機(jī)。為了規(guī)避單節(jié)點(diǎn)主機(jī)并發(fā)數(shù)量的限制,盡量將讀寫壓力高的分片節(jié)點(diǎn)均勻地放在不同的節(jié)點(diǎn)主機(jī)上。

五、MyCat原理介紹

MyCat原理中最重要的一個(gè)動(dòng)詞是“攔截”,它攔截了用戶發(fā)送過來的SQL語句,首先對(duì)SQL語句做了一些特定的分析,例如分片分析、路由分析、讀寫分離分析、緩存分析等,然后將此SQL語句發(fā)往后端的真實(shí)數(shù)據(jù)庫(kù),并將返回的結(jié)果做適當(dāng)?shù)奶幚?,最終再返回給用戶。

[[276901]]

MyCat收到一條SQL語句時(shí),首先解析SQL語句涉及的表,接著查看此表的定義,如果該表存在分片規(guī)則,則獲取SQL語句里分片字段的值,并匹配分片函數(shù),得到該SQL語句對(duì)應(yīng)的分片列表,然后將SQL語句發(fā)送到相應(yīng)的分片去執(zhí)行,最后處理所有分片返回的數(shù)據(jù)并返回給客戶端。

六、MyCat配置

schema.xml是MyCat的重要配置文件,它管理著邏輯庫(kù)、分片表、分片節(jié)點(diǎn)和分片主機(jī)等信息。

service.xml是系統(tǒng)參數(shù)的配置文件,掌握MyCat優(yōu)化方法,必需熟悉該文件的配置項(xiàng)。

sequence是全局序列的配置文件。

6.1 server.xml配置文件

server.xml配置文件包含了MyCat的系統(tǒng)配置信息,對(duì)應(yīng)的源碼是SystemConfig.java。它有兩個(gè)重要的標(biāo)簽,分別是user、system。掌握system標(biāo)簽的各項(xiàng)配置屬性是MyCat調(diào)優(yōu)的關(guān)鍵。

  1. <MyCat:server xmlns:MyCat="http://io.MyCat/"
  2.     <system> 
  3.     <property name="nonePasswordLogin">0</property> <!-- 0為需要密碼登陸、1為不需要密碼登陸 ,默認(rèn)為0,設(shè)置為1則需要指定默認(rèn)賬戶--> 
  4.     <property name="useHandshakeV10">1</property> 
  5.     <property name="useSqlStat">0</property>  <!-- 1為開啟實(shí)時(shí)統(tǒng)計(jì)、0為關(guān)閉 --> 
  6.     <property name="useGlobleTableCheck">0</property>  <!-- 1為開啟全加班一致性檢測(cè)、0為關(guān)閉 --> 
  7.  
  8.         <property name="sequnceHandlerType">2</property> 
  9.     <property name="subqueryRelationshipCheck">false</property> <!-- 子查詢中存在關(guān)聯(lián)查詢的情況下,檢查關(guān)聯(lián)字段中是否有分片字段 .默認(rèn) false --> 
  10.       <!--  <property name="useCompression">1</property>--> <!--1為開啟mysql壓縮協(xié)議--> 
  11.         <!--  <property name="fakeMySQLVersion">5.6.20</property>--> <!--設(shè)置模擬的MySQL版本號(hào)--> 
  12.     <!-- <property name="processorBufferChunk">40960</property> --> 
  13.     <!--  
  14.     <property name="processors">1</property>  
  15.     <property name="processorExecutor">32</property>  
  16.      --> 
  17.         <!--默認(rèn)為type 0: DirectByteBufferPool | type 1 ByteBufferArena | type 2 NettyBufferPool --> 
  18.         <property name="processorBufferPoolType">0</property> 
  19.         <!--默認(rèn)是65535 64K 用于sql解析時(shí)最大文本長(zhǎng)度 --> 
  20.         <!--<property name="maxStringLiteralLength">65535</property>--> 
  21.         <!--<property name="sequnceHandlerType">0</property>--> 
  22.         <!--<property name="backSocketNoDelay">1</property>--> 
  23.         <!--<property name="frontSocketNoDelay">1</property>--> 
  24.         <!--<property name="processorExecutor">16</property>--> 
  25.         <!-- 
  26.             <property name="serverPort">8066</property> <property name="managerPort">9066</property>  
  27.             <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>  
  28.             <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> --> 
  29.         <!--分布式事務(wù)開關(guān),0為不過濾分布式事務(wù),1為過濾分布式事務(wù)(如果分布式事務(wù)內(nèi)只涉及全局表,則不過濾),2為不過濾分布式事務(wù),但是記錄分布式事務(wù)日志--> 
  30.         <property name="handleDistributedTransactions">0</property> 
  31.          
  32.             <!-- 
  33.             off heap for merge/order/group/limit      1開啟   0關(guān)閉 
  34.         --> 
  35.         <property name="useOffHeapForMerge">1</property> 
  36.  
  37.         <!-- 
  38.             單位為m 
  39.         --> 
  40.         <property name="memoryPageSize">64k</property> 
  41.  
  42.         <!-- 
  43.             單位為k 
  44.         --> 
  45.         <property name="spillsFileBufferSize">1k</property> 
  46.  
  47.         <property name="useStreamOutput">0</property> 
  48.  
  49.         <!-- 
  50.             單位為m 
  51.         --> 
  52.         <property name="systemReserveMemorySize">384m</property> 
  53.  
  54.  
  55.         <!--是否采用zookeeper協(xié)調(diào)切換  --> 
  56.         <property name="useZKSwitch">false</property> 
  57.  
  58.         <!-- XA Recovery Log日志路徑 --> 
  59.         <!--<property name="XARecoveryLogBaseDir">./</property>--> 
  60.  
  61.         <!-- XA Recovery Log日志名稱 --> 
  62.         <!--<property name="XARecoveryLogBaseName">tmlog</property>--> 
  63.         <!--如果為 true的話 嚴(yán)格遵守隔離級(jí)別,不會(huì)在僅僅只有select語句的時(shí)候在事務(wù)中切換連接--> 
  64.         <property name="strictTxIsolation">false</property> 
  65.          
  66.         <property name="useZKSwitch">true</property> 
  67.          
  68.     </system> 
  69.      
  70.     <!-- 全局SQL防火墻設(shè)置 --> 
  71.     <!--白名單可以使用通配符%或著*--> 
  72.     <!--例如<host host="127.0.0.*" user="root"/>--> 
  73.     <!--例如<host host="127.0.*" user="root"/>--> 
  74.     <!--例如<host host="127.*" user="root"/>--> 
  75.     <!--例如<host host="1*7.*" user="root"/>--> 
  76.     <!--這些配置情況下對(duì)于127.0.0.1都能以root賬戶登錄--> 
  77.     <!-- 
  78.     <firewall> 
  79.        <whitehost> 
  80.           <host host="1*7.0.0.*" user="root"/> 
  81.        </whitehost> 
  82.        <blacklist check="false"
  83.        </blacklist> 
  84.     </firewall> 
  85.     --> 
  86.  
  87.     <user name="root" defaultAccount="true"
  88.         <property name="password">123456</property> 
  89.         <property name="schemas">TESTDB</property> 
  90.          
  91.         <!-- 表級(jí) DML 權(quán)限設(shè)置 --> 
  92.         <!--         
  93.         <privileges check="false"
  94.             <schema name="TESTDB" dml="0110" > 
  95.                 <table name="tb01" dml="0000"></table
  96.                 <table name="tb02" dml="1111"></table
  97.             </schema
  98.         </privileges>        
  99.          --> 
  100.     </user
  101.  
  102.     <user name="user"
  103.         <property name="password">user</property> 
  104.         <property name="schemas">TESTDB</property> 
  105.         <property name="readOnly">true</property> 
  106.     </user
  107.  
  108. </MyCat:server> 

6.2 schema.xml配置文件

schema.xml 作為MyCat中重要的配置文件之一,涵蓋了MyCat的邏輯庫(kù)、表、分片規(guī)則、分片節(jié)點(diǎn)及數(shù)據(jù)源。

1)schema 標(biāo)簽

  1. <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"

schema標(biāo)簽用于定義MyCat實(shí)例中的邏輯庫(kù)。MyCat可以有多個(gè)邏輯庫(kù),每個(gè)邏輯庫(kù)都有自己的相關(guān)配置。可以使用schema標(biāo)簽來劃分不同的邏輯庫(kù),如果有配置schema標(biāo)簽,則所有的表配置都會(huì)屬于同一個(gè)默認(rèn)的邏輯庫(kù)。

  1. <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"
  2. <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> 
  3. </schema
  4. <schema name="USERDB" checkSQLschema="false" sqlMaxLimit="100"
  5. <table name="company" dataNode="dn10,dn11,dn12" rule="auto-sharding-long" /> 
  6. </schema

如上所示配置了兩個(gè)不同的邏輯庫(kù),邏輯庫(kù)的概念等同于MySQL數(shù)據(jù)庫(kù)中的Database概念,我們?cè)诓樵冞壿嫀?kù)中的表時(shí),需要切換到該邏輯庫(kù)下才可以查詢其中的表。

checkSQLschema屬性,當(dāng)把該值設(shè)置為true時(shí),如果我們執(zhí)行語句 select * from TESTDB.travelrecord;,則MyCat會(huì)把schema字符去掉,把SQL語句修改為select * from travelrecord;可避免發(fā)送到后端數(shù)據(jù)庫(kù)執(zhí)行時(shí)報(bào)錯(cuò)。

SqlMaxLimit屬性,當(dāng)該屬性設(shè)置為某個(gè)值時(shí),每次執(zhí)行的SQL語句如果沒有加上limit語句,MyCat也會(huì)自動(dòng)在limit語句后加上對(duì)應(yīng)的值。如果不設(shè)置該值,則MyCat會(huì)把查詢到的信息全部返回。

2)table 標(biāo)簽

<table name=”travelrecord” dataNode=”dn1,dn2,dn3” rule=”auto-sharding-long”></table> 

table標(biāo)簽定義了MyCat中的邏輯表,所有需要拆分的的表都需要在table標(biāo)簽中定義。

table標(biāo)簽的主要屬性見下表,具體介紹參見MyCat官方網(wǎng)站 http://www.MyCat.io 。

屬性名 數(shù)量限制
name String 1
dataNode String 1..*
rule String 0..1
ruleRequired boolean 0..1
primaryKey String 1
type String 0..1
autoIncrement boolean 0..1
subTables String 1
needAddLimit Boolean 0..1

3)childTable 標(biāo)簽

childTable標(biāo)簽用于定義 E-R 分片的子表,通過標(biāo)簽上的屬性與父表進(jìn)行關(guān)聯(lián)。

4)dataNode標(biāo)簽

dataNode標(biāo)簽定義了MyCat中的數(shù)據(jù)節(jié)點(diǎn),也就是我們通常所說的數(shù)據(jù)分片。一個(gè)dataNode標(biāo)簽就是一個(gè)獨(dú)立的數(shù)據(jù)分片。

5)dataHost標(biāo)簽

dataHost標(biāo)簽在MyCat邏輯庫(kù)中作為底層標(biāo)簽存在,直接定義了具體的數(shù)據(jù)庫(kù)實(shí)例,讀寫分離和心跳語句。

Heartbeat標(biāo)簽用來配置心跳檢查語句,Mysql可以使用select user(),Oracle可以使用select 1 from dual 等。

writeHost和readHost是讀寫的配置,一個(gè)dataHost內(nèi)可以配置多個(gè)讀和寫。但如果writeHost指定的后端數(shù)據(jù)庫(kù)宕機(jī),那么這個(gè)writeHost綁定的所有readHost也將不可用;另一方面,MyCat會(huì)自動(dòng)檢測(cè)到writeHost宕機(jī),并切換到備用的writeHost上。

七、MyCat分片

在MyCat中將表分為兩種大的概念:數(shù)據(jù)量小且不需要做數(shù)據(jù)切分的表,稱為非分片表;數(shù)據(jù)量大到單庫(kù)性能、容量不足以支撐,數(shù)據(jù)需要通過水平切分均勻分布到不同的數(shù)據(jù)庫(kù)中的表,稱為分片表。而中間件最終需要處理的事情是對(duì)數(shù)據(jù)切分、聚合。

7.1 ER關(guān)系分片表

ER模型是實(shí)體關(guān)系模型,廣泛采用概念模型設(shè)計(jì)方法,基本元素是實(shí)體、關(guān)系和屬性。MyCat將它引入數(shù)據(jù)切分規(guī)則中,使得有互相依賴的表能夠按照某一規(guī)則切分到相同的節(jié)點(diǎn)上,避免跨庫(kù)Join關(guān)聯(lián)查詢。具體詳情配置內(nèi)容在這里不做描述請(qǐng)參考官方文檔。

八、功能與優(yōu)勢(shì)

8.1 常用命令

  • MyCat提供類似數(shù)據(jù)管理監(jiān)控方式,可以通過MySQL命令行登錄管理端口(9066)執(zhí)行相應(yīng)的SQL語句進(jìn)行管理,也可以通過JDBC方式進(jìn)行遠(yuǎn)程連接管理。
  • Reload @@config命令用于更新配置文件運(yùn)行該命令,不用重啟即可進(jìn)行配置文件更新。
  • Reload @@sqlstat用來關(guān)閉和開啟SQL監(jiān)控分析。
  • Show @@database命令用來顯示MyCat數(shù)據(jù)庫(kù)列表,運(yùn)行結(jié)果對(duì)應(yīng)schema.xml配置文件的schema子節(jié)點(diǎn)。
  • Show @@datanode用來顯示MyCat數(shù)據(jù)節(jié)點(diǎn),運(yùn)行結(jié)果對(duì)應(yīng)schema.xml配置文件的dataNode節(jié)點(diǎn)。
  • Show @@heartbeat用于報(bào)告心跳狀態(tài)。
  • Show @@connection用來獲取MyCat的前端連接狀態(tài)。
  • Kill @@connection id,id,id 用來關(guān)閉連接。
  • Show @@ cache用來查看緩存。
  • Show @@datasource 用來查看數(shù)據(jù)源狀態(tài),如果配置了主從或多主,則可以切換。
  • Switch @@ datasource name:index 用于切換數(shù)據(jù)源。
  • Show @@syslog limit 用于顯示系統(tǒng)日志。
  • Show @@sql 顯示在MyCat中執(zhí)行過的語句。
  • Show @@shl.show 顯示慢SQL語句。
  • Show @@sql.sum 顯示SQL語句的整體執(zhí)行情況、讀寫比例等。

8.2 局限性

delete操作不支持沒有主鍵的表。沒有主鍵的表在不同節(jié)點(diǎn)的順序不同,如果執(zhí)行 select ...limit...,則將出現(xiàn)不同的結(jié)果集。

不支持XA事務(wù),在提交上可能回滾。

由于集群是樂觀的并發(fā)控件,事務(wù)commit可能在該階段中止,所以如果有兩個(gè)事務(wù)向集群中的不同節(jié)點(diǎn)的同一行寫入并提交,則失敗的節(jié)點(diǎn)將中止。對(duì)于集群級(jí)別的中止,集群返回死鎖錯(cuò)誤。

整個(gè)集群的寫入吞吐量由最弱的節(jié)點(diǎn)限制,如果有一個(gè)節(jié)點(diǎn)變得緩慢,那么整個(gè)集群將變得緩慢。

集群內(nèi)部按照id自增長(zhǎng)機(jī)制寫入數(shù)據(jù),比如集群中有三臺(tái)可能是3,6,9這樣的遞增。

8.3 與Sharding-JDBC對(duì)比Sharding-JDBC

MyCat是一個(gè)中間件的第三方應(yīng)用,sharding-jdbc是一個(gè)jar包。 因?yàn)镸yCat是單獨(dú)部署,所以使用MyCat就像是訪問數(shù)據(jù)庫(kù)一樣,而sharding-jdbc的邏輯都是需要在工程里寫的。

如果只是單獨(dú)應(yīng)用可以使用輕量級(jí)的Sharding-JDBC,如果多個(gè)服務(wù)都需要操作數(shù)據(jù)庫(kù)則使用MyCat更合適。因?yàn)橛肧harding-JDBC需要在每一個(gè)工程里邊都配置上相應(yīng)的分片等邏輯,而MyCat只需要配置一份單獨(dú)部署。

 

責(zé)任編輯:龐桂玉 來源: OSCHINA
相關(guān)推薦

2019-12-24 10:12:09

數(shù)據(jù)庫(kù)工具技術(shù)

2023-10-17 08:31:03

SQLite數(shù)據(jù)庫(kù)

2011-07-25 18:11:47

SQL Server數(shù)復(fù)合主鍵

2009-07-20 13:31:50

Ruby on Rai

2011-08-18 10:21:50

SQL ServerDATEPART

2024-02-28 08:06:17

2017-07-26 09:41:28

MyCATSQLMongoDB

2017-07-18 17:07:40

數(shù)據(jù)庫(kù) MyCATJoin

2019-08-01 07:31:51

數(shù)據(jù)庫(kù)主機(jī)日志

2017-07-18 17:35:16

數(shù)據(jù)庫(kù)MyCATPreparedSta

2011-04-14 11:09:14

MySQL數(shù)據(jù)庫(kù)

2011-08-18 10:55:55

SQL ServerDATEADD

2011-08-15 14:12:16

SQL ServerDATEDIFF

2010-10-26 15:54:02

連接oracle數(shù)據(jù)庫(kù)

2009-06-16 11:11:25

JBoss目錄數(shù)據(jù)庫(kù)連接

2014-12-29 10:29:40

OpenStack數(shù)據(jù)庫(kù)SQLAlchem

2011-08-02 18:19:01

2015-01-12 15:07:56

SQLAlchemy數(shù)據(jù)庫(kù)開發(fā)OpenStac

2011-03-08 10:58:09

Sybase數(shù)據(jù)庫(kù)

2012-09-25 09:19:26

Spring數(shù)據(jù)庫(kù)雙數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)