国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

springboot+mycat 分表分庫(kù)

lakeside / 1666人閱讀

摘要:而在分布式系統(tǒng)中,分表分庫(kù)也是常用的一種解決此類瓶頸的手段。支持?jǐn)?shù)據(jù)的多片自動(dòng)路由與聚合,支持等常用的聚合函數(shù)支持跨庫(kù)分頁(yè)。支持通過(guò)全局表,關(guān)系的分片策略,實(shí)現(xiàn)了高效的多表查詢。支持多租戶方案。

前言

對(duì)于業(yè)務(wù)量越來(lái)越大的時(shí)候,單表數(shù)據(jù)超過(guò)幾千萬(wàn),甚至上億時(shí),一張表里面查詢真的會(huì)很費(fèi)時(shí)。而在分布式系統(tǒng)中,分表分庫(kù)也是常用的一種解決此類瓶頸的手段。今天就選用springboot+mycat簡(jiǎn)單聊下。mycat官網(wǎng):http://www.mycat.io/

什么是mycat?

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

為什么要用mycat?

   支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常見(jiàn)SQL語(yǔ)法
   遵守Mysql原生協(xié)議,跨語(yǔ)言,跨平臺(tái),跨數(shù)據(jù)庫(kù)的通用中間件代理
   基于心跳的自動(dòng)故障切換,支持讀寫(xiě)分離,支持MySQL主從,以及galera cluster集群。
   支持Galera for MySQL集群,Percona Cluster或者M(jìn)ariaDB cluster
   基于Nio實(shí)現(xiàn),有效管理線程,解決高并發(fā)問(wèn)題。
   支持?jǐn)?shù)據(jù)的多片自動(dòng)路由與聚合,支持sum,count,max等常用的聚合函數(shù),支持跨庫(kù)分頁(yè)。
   支持單庫(kù)內(nèi)部任意join,支持跨庫(kù)2表join,甚至基于caltlet的多表join。
   支持通過(guò)全局表,ER關(guān)系的分片策略,實(shí)現(xiàn)了高效的多表join查詢。
   支持多租戶方案。
   支持分布式事務(wù)(弱xa)。
   支持XA分布式事務(wù)(1.6.5)。
   支持全局序列號(hào),解決分布式下的主鍵生成問(wèn)題。
   分片規(guī)則豐富,插件化開(kāi)發(fā),易于擴(kuò)展。
   強(qiáng)大的web,命令行監(jiān)控。
   ...
   

centos7安裝下載mycat

centos7安裝mycat
安裝mycat比較簡(jiǎn)單,我這邊也詳細(xì)說(shuō)明一下:

 #下載: 
 wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
 #解壓
 tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
 #授權(quán)
 chmod -R 777 mycat
 #環(huán)境變量添加:
 vi /etc/profile
 #在里面添加:
 export MYCAT_HOME=/crawler/mycat/mycat   ##自己的安裝路徑
 export PATH=$PATH:$MYCAT_HOME/bin  
 #使環(huán)境變量生效
 source /etc/profile
 #注意:
 #Linux 下部署安裝 MySQL,默認(rèn)不忽略表名大小寫(xiě),需要手動(dòng)到/etc/my.cnf 下配置:
 lower_case_table_names=1
 

前期準(zhǔn)備
ps:mycat需要配置java_home ,就算安裝了java如果沒(méi)有配置java_home.還是會(huì)拋沒(méi)有找到j(luò)ava_home的錯(cuò),在此,我們檢查一下有沒(méi)有配置,若沒(méi)有配置,請(qǐng)按以下步驟操作:

   A 確定java安裝路徑
      
  1. 終端輸入:
     which java
   輸出為:
     /usr/bin/java
  2. 終端輸入:
     ls -lr /usr/bin/java
   輸出為: 
      /usr/bin/java -> 
   3. 終端輸入
       ls -lrt /etc/alternatives/java
    輸出:    
       /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java

至此,我們確定java的安裝目錄為: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64

 B 配置JAVA_HOME

1. 打開(kāi)配置環(huán)境變量的文件
vi /etc/profile
2. 添加以下配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

:wq保存退出。
3. 讓配置生效
source  /etc/profile
4. 測(cè)試配置結(jié)果
echo $JAVA_HOME 

3.配置關(guān)鍵配置

a:配置schema.xml

  



 
   
             
      
   
     
     
           select user()  
             
                       
                 
    


b:配置rule.xml





    
       
           id
           mod-long
       
   
   
       
       2
   

c:配置server.xml





    
    0  
    0  

        2
       
         
    
    
        
        0
        
        
        
        
        
        
        
        
        0
        
            
        1

        
        1m

        
        1k

        0

        
        384m


        
        true


    
    
    
    
    
     
        123456 
        mycatDatabase  
        false
    


此時(shí),我們運(yùn)行mycat : mycat/bin/startup_nowrap.sh
如果是阿里云或者其他云服務(wù)器,需要把mycat的端口打開(kāi),默認(rèn)端口是8066
此時(shí),我們可以看一下日志:
mycat/logs/..

若沒(méi)什么問(wèn)題,那么就可以在springboot上做集成了
ps:我們必須在上面所涉及到的地方建兩個(gè)庫(kù)哦: 如上面我建的是db01 db02

springboot集成mycat
 spring:
  datasource:
    url: jdbc:mysql://www.iamcrawler.cn:8066/mycatDatabase?serverTimezone=Asia/Shanghai
    username: crawler
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

service

/**
 * create by liuliang
 * on 2019-07-30  17:16
 */
@Service
public class MycatUserService extends ServiceImpl {
    
    public List getUsers(){
        List list = this.list(new QueryWrapper<>());
        return list;
    }

}

controller

/**
 * create by liuliang
 * on 2019-07-30  17:17
 */
@RestController
@RequestMapping("/mycat/user")
public class MyCatUserController {

    @Autowired
    private MycatUserService userService;


    @PostMapping
    public ResponseEntity insertUser(@RequestBody MycatUser mycatUser){
        return ResponseEntity.ok(userService.save(mycatUser));
    }

    @GetMapping
    public ResponseEntity getUsers(){
        return ResponseEntity.ok(userService.getUsers());
    }

}

調(diào)試:這個(gè)時(shí)候我們啟動(dòng)程序,先后插入兩條數(shù)據(jù):

localhost:9090/mycat/user  post
 {
    "id":"10",
    "name":"zhangsan"
}
 localhost:9090/mycat/user  post
 {
    "id":"11",
    "name":"lisi"
}




數(shù)據(jù)庫(kù)看的時(shí)候,發(fā)現(xiàn)已經(jīng)進(jìn)入了兩個(gè)不同的庫(kù)。
而我們查詢的時(shí)候:

   localhost:9090/mycat/user  get
    [
    {
        "id": 11,
        "name": "lisi"
    },
    {
        "id": 10,
        "name": "zhangsan"
    }
]

可以看到是,數(shù)據(jù)都查詢出來(lái)了,mycat分庫(kù)生效

ps:如果各位有項(xiàng)目使用的是liquibase,那么與mycat集成的時(shí)候會(huì)拋錯(cuò),原因是因?yàn)閘iquibase需要簡(jiǎn)歷changelog表,而使用的庫(kù)是mycatDatabase ,這個(gè)是mycat的連接,而不是真實(shí)數(shù)據(jù)庫(kù)的連接...
github : https://github.com/iamcrawler...

最后,碼字不易,轉(zhuǎn)載復(fù)制請(qǐng)指明原創(chuàng)https://segmentfault.com/a/11...,違者必究...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/75671.html

相關(guān)文章

  • 基于代理的數(shù)據(jù)庫(kù)分庫(kù)分表框架 Mycat實(shí)踐

    摘要:文章共字,閱讀大約需要分鐘概述在如今海量數(shù)據(jù)充斥的互聯(lián)網(wǎng)環(huán)境下,分庫(kù)分表的意義我想在此處就不用贅述了。 showImg(https://segmentfault.com/img/remote/1460000017453449); 文章共 1796字,閱讀大約需要 4分鐘 ! 概 述 在如今海量數(shù)據(jù)充斥的互聯(lián)網(wǎng)環(huán)境下,分庫(kù)分表的意義我想在此處就不用贅述了。而分庫(kù)分表目前流行的方案最起碼...

    el09xccxy 評(píng)論0 收藏0
  • 題庫(kù)分庫(kù)分表架構(gòu)方案

    摘要:個(gè)人博客地址方案項(xiàng)目背景在現(xiàn)在題庫(kù)架構(gòu)下,針對(duì)新購(gòu)買(mǎi)的多道數(shù)據(jù)進(jìn)行整合,不影響現(xiàn)有功能。數(shù)據(jù)切分盡量通過(guò)數(shù)據(jù)冗余或表分組來(lái)降低跨庫(kù)的可能。 個(gè)人博客地址 https://www.texixi.com/2019/0... 方案 項(xiàng)目背景 在現(xiàn)在題庫(kù)架構(gòu)下,針對(duì)新購(gòu)買(mǎi)的1300W多道數(shù)據(jù)進(jìn)行整合,不影響現(xiàn)有功能。由于數(shù)據(jù)量偏多,需要進(jìn)行數(shù)據(jù)的切分 目標(biāo)場(chǎng)景 兼容舊的功能 對(duì)1300多W...

    kohoh_ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看

            <