導航:首頁 > 操作系統 > linux安裝mycat

linux安裝mycat

發布時間:2023-03-22 19:27:08

A. 學習java需要什麼基礎

想通過自學掌握這門語言,這顯然是不太現實的,
Java的奧妙之深,之復雜是很難衡量的,
而無論是網路上的Java教學視頻,還是書本里的知識都有一個循序漸進的過程,
學會一步後才能了解下一步,
如果問Java在沒有任何基礎的情況下自學多久能掌握,答案是很難學好。
學java不難,主要是有人帶你,跟著項目走那才能進步得快,才能入門,
否則自己學的不僅慢,而且不得重點。
而且這個行業已經人滿為患了,初級的已經不好找了,只能盡人事看天命了!
我個人的建議是,一定要有一個能指導你的人,能到專業的學校學會更好,
不能都靠自己閉門造車,這樣的行為並不聰明,
結識一位這方面的人才,時不時去問問人家問題,
不然你可能會發現一個小問題能困擾你一天,最後還不知道是什麼原因。
其實也可以去電腦學校參觀學習,多比較哈

B. linux常用埠號(1)

1.FTP:文件傳輸協議

        協議名:FTP

        軟體名:vsftpd

        FTP埠:控制埠  21/TCP        數據埠:20/TCP

        FTP默認埠號為21/tcp

        TFTP        默認埠號為69/UDP

2.SSH (安全登錄),SCP(文件傳輸),埠號重定向,默認的埠號為22/TCP

        SSH是少數被許可穿越防火牆的協議之一。通常的做法是不限制出站的SSH連接,而入站的SSH連接通常會限制到一台或者少數幾台伺服器上。

3.Telnet使用23埠:Telnet是一種遠程登錄的埠,用戶可以以自己的身份遠程連接到計算機上,通過這種埠可以提供一種基於DOS模式下的通信服務。

4.NFS(網路文件系統):讓網路上的不同Linux/UNIX系統及其實現文件共享

        NFS本身只是一種文件系統,沒有提供文件傳輸的功能,但卻能讓我們文件共享,原因在於NFS使用RPC服務,用到NFS的地方需要啟動RPC服務,無論是NFS客戶端還是服務端。

        NFS和RPC的關系:NFS是一個文件系統,負責管理分享的目錄,RPC負責文件的傳遞。

        NFS啟動時至少有RPC.NFSD和RPC.mountd,2個daemon

        rpc.nfsd主要管理客戶機登錄NFS伺服器時,判斷客戶機是否能登錄,和客戶機ID信息。

        rpc.mountd主要管理nfs的文件系統,當客戶機順利登錄NFS伺服器時,會去讀/etc/exports文件中的配置,然後去對比客戶機的許可權。

        協議使用埠:

            RPC:  111  TCP/UDP    

            NFSD:  2049  TCP/UDP

            mountd:  RPC服務在NFS服務啟動時默認會為mountd動態選取一個隨機埠(32768--65535)來進行通訊,可以在/etc/nfsmount.conf文件中指定mount的埠。

5.NTP (網路時間協議)

        他的目的是國際互聯網上傳遞統一,標準的時間。

        NTP同時同步指的是通過網路的NTP協議和時間源進行時間校準,前提條件,事件源輸出必須通過網路介面,數據輸出格式必須符合NTP協議。

        區域網內所有的PC,伺服器和其他設備通過網路與時間伺服器保持同步,NTP協議自動判斷網路延時,並給得到的數據進行時間補償,從而使區域網內設備時間保持統一標准。

        埠: 123/UDP

6.DNS   域名系統

        該系統用於命名組織到域層次結構中的計算機和網路服務。

        在Internel上域名和IP地址是一一對應的,域名雖然便於人們記憶,但機器之間只能互相認識IP地址,他們之間的轉換工作稱為域名解析,域名解析需要專門的域名解析伺服器來完成。

    DNS運行在UDP協議之上,使用埠號53.

    在傳輸層TCP提供端到端可靠的服務,在UDP端提供盡力而為的服務,其控制埠作用於UDP埠53.

    UDP53:        解析客戶端的域名用UDP(速度快)

    TCP53        主從用(安全性較高)

7.PHP-FPM是一個PHPFastCGI

        默認埠:9000/TCP

8.SMTP: 是一種提供可靠且有效電子郵件傳輸協議。SMTP是建模在FTP文件傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件信息並提供來信相關的通知

       SMTP:  埠號:25 /TCP  發郵件

        POP3:  埠號:TCP/25   收郵件

        IMAP4  埠號: TCP/143  用來提供發郵件支持附件用的。

9.Samba:

        137(UDP) ,  138(UDP) 

        139(TCP) ,   445(TCP) 提供文件共享功能

        137udp,138udp提供ip地址到主機名解析的功能

        901(TCP)

10.Mycat

        代替昂貴的Oracle的MySQL集群中間件

        默認埠8066連接Mycat

        9066管理埠

C. MySQL Mycat 分布式架構

參考: https://www.jianshu.com/p/5e0062f6cf62

圖中是兩組分片,紅色我們稱為shard1,藍色我們稱為shard2
51 52是伺服器
兩個3307互為主從(雙主),3309是本地3307的從庫

說明:沒有明確說明是只在某一個節點上做的,就是兩個節點都做

兩台虛擬機 db01 db02
每台創建四個mysql實例:3307 3308 3309 3310

mysql軟體我們之前已完成二進制安裝,直接初始化即可

我們server-id規劃為:db01上是7/8/9/10,db02上是17/18/19/20

"箭頭指向誰是主庫"
10.0.0.51:3307 <-----> 10.0.0.52:3307
10.0.0.51:3309 ------> 10.0.0.51:3307
10.0.0.52:3309 ------> 10.0.0.52:3307

兩個分片,每個分片四個mysql節點
shard1:
Master:10.0.0.51:3307
slave1:10.0.0.51:3309
Standby Master:10.0.0.52:3307
slave2:10.0.0.52:3309
shard2:
Master:10.0.0.52:3308
slave1:10.0.0.52:3310
Standby Master:10.0.0.51:3308
slave2:10.0.0.51:3310

shard1
10.0.0.51:3307 <-----> 10.0.0.52:3307
db02

db01

db02

10.0.0.51:3309 ------> 10.0.0.51:3307
db01

10.0.0.52:3309 ------> 10.0.0.52:3307
db02

shard2
10.0.0.52:3308 <-----> 10.0.0.51:3308
db01

db02

db01

10.0.0.52:3310 -----> 10.0.0.52:3308
db02

10.0.0.51:3310 -----> 10.0.0.51:3308
db01

這個復制用戶在誰上建都行

註:如果中間出現錯誤,在每個節點進行執行以下命令

常見方案:

360 Atlas-Sharding 360
Alibaba cobar 阿里
Mycat 開源
TDDL 淘寶
Heisenberg 網路
Oceanus 58同城
Vitess 谷歌
OneProxy
DRDS 阿里雲

我們裝的是openjdk,不是官方的那個

Mycat-server-xxxxx.linux.tar.gz
http://dl.mycat.io/

配置環境變數
我們mycat的命令也是在bin目錄下

啟動

8066就是對外提供服務的埠,9066是管理埠
連接mycat:

默認123456

db01:

我們一般先把原schema.xml備份,然後自己新寫一個:

xml和html看起來差不多,xml是從下往上調用的
前三行我們不用看,直接從第四行schema開始看起:

定義了schema,然後以/schema結尾
為什麼要用邏輯庫?
業務透明化

此配置文件就是實現讀寫分離的配置

重啟mycat

讀寫分離測試

總結:
以上案例實現了1主1從的讀寫分離功能,寫操作落到主庫,讀操作落到從庫.如果主庫宕機,從庫不能在繼續提供服務了。

我們推薦這種架構

一寫三讀,
不設置雙寫的原因是:性能沒提升多少,反而引起主鍵沖突的情況
配置文件:

之後重啟:mycat restart

真正的 writehost:負責寫操作的writehost
standby writeHost :和readhost一樣,只提供讀服務

我們此處寫了兩個writehost,默認使用第一個
當寫節點宕機後,後面跟的readhost也不提供服務,這時候standby的writehost就提供寫服務,
後面跟的readhost提供讀服務

測試:

讀寫分離測試

對db01 3307節點進行關閉和啟動,測試讀寫操作

結果應為另一台(52)的3307(17)是寫,3309(19)是讀
一旦7號節點恢復,此時因為7落後了,寫節點仍是17

balance屬性
負載均衡類型,目前的取值有3種:

writeType屬性
負載均衡類型,目前的取值有2種:

switchType屬性
-1 表示不自動切換
1 默認值,自動切換
2 基於MySQL主從同步的狀態決定是否切換 ,心跳語句為 show slave status

datahost其他配置
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1">

maxCon="1000":最大的並發連接數
minCon="10" :mycat在啟動之後,會在後端節點上自動開啟的連接線程,長連接,好處是連接速度快,弊端是占內存
tempReadHostAvailable="1"
這個一主一從時(1個writehost,1個readhost時),可以開啟這個參數,如果2個writehost,2個readhost時
<heartbeat>select user()</heartbeat> 監測心跳

其他參數sqlMaxLimit自動分頁,必須在啟用分表的情況下才生效

創建測試庫和表:

我們重啟mycat後連接到8066

發現跟一個庫一樣,實際上已經分到不同的物理硬體上了

分片:對一個"bigtable",比如說t3表
熱點數據表 核心表
(1)行數非常多,800w下坡
(2)訪問非常頻繁

分片的目的:
(1)將大數據量進行分布存儲
(2)提供均衡的訪問路由

分片策略:
范圍 range 800w 1-400w 400w01-800w 不適用於業務訪問不均勻的情況
取模 mod (取余數) 和節點的數量進行取模
枚舉 按枚舉的種類分,如移動項目按省份分
哈希 hash
時間 流水

優化關聯查詢(否則join的表在不同分片上,效率會比單庫還要低)
全局表
ER分片

案例:移動統一:先拆出邊緣業務,再按地域分片,但對應用來說是統一的

vim rule.xml
<tableRule name="auto-sharding-long">
<rule>
<columns>id</columns>
<algorithm>rang-long</algorithm>
</rule>
<function name="rang-long"
class="io.mycat.route.function.AutoPartitionByLong">
<property name="mapFile">autopartition-long.txt</property>
</function>
===================================
vim autopartition-long.txt
0-10=0
11-20=1

創建測試表:
mysql -S /data/3307/mysql.sock -e "use taobao;create table t3 (id int not null primary key auto_increment,name varchar(20) not null);"

mysql -S /data/3308/mysql.sock -e "use taobao;create table t3 (id int not null primary key auto_increment,name varchar(20) not null);"

測試:
重啟mycat
mycat restart
mysql -uroot -p123456 -h 127.0.0.1 -P 8066
insert into t3(id,name) values(1,'a');
insert into t3(id,name) values(2,'b');
insert into t3(id,name) values(3,'c');
insert into t3(id,name) values(4,'d');
insert into t3(id,name) values(11,'aa');
insert into t3(id,name) values(12,'bb');
insert into t3(id,name) values(13,'cc');
insert into t3(id,name) values(14,'dd');

取余分片方式:分片鍵(一個列)與節點數量進行取余,得到余數,將數據寫入對應節點
vim schema.xml
<table name="t4" dataNode="sh1,sh2" rule="mod-long" />
vim rule.xml
<property name="count">2</property>

准備測試環境

創建測試表:
mysql -S /data/3307/mysql.sock -e "use taobao;create table t4 (id int not null primary key auto_increment,name varchar(20) not null);"
mysql -S /data/3308/mysql.sock -e "use taobao;create table t4 (id int not null primary key auto_increment,name varchar(20) not null);"

重啟mycat
mycat restart

測試:
mysql -uroot -p123456 -h10.0.0.52 -P8066

use TESTDB
insert into t4(id,name) values(1,'a');
insert into t4(id,name) values(2,'b');
insert into t4(id,name) values(3,'c');
insert into t4(id,name) values(4,'d');

分別登錄後端節點查詢數據
mysql -S /data/3307/mysql.sock
use taobao
select * from t4;

mysql -S /data/3308/mysql.sock
use taobao
select * from t4;

t5 表
id name telnum
1 bj 1212
2 sh 22222
3 bj 3333
4 sh 44444
5 bj 5555

sharding-by-intfile
vim schema.xml
<table name="t5" dataNode="sh1,sh2" rule="sharding-by-intfile" />

vim rule.xml
<tableRule name="sharding-by-intfile">
<rule> <columns>name</columns>
<algorithm>hash-int</algorithm>
</rule>
</tableRule>

<function name="hash-int" class="org.opencloudb.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int.txt</property>
<property name="type">1</property>
<property name="defaultNode">0</property>
</function>

partition-hash-int.txt 配置:
bj=0
sh=1
DEFAULT_NODE=1
columns 標識將要分片的表欄位,algorithm 分片函數, 其中分片函數配置中,mapFile標識配置文件名稱

准備測試環境
mysql -S /data/3307/mysql.sock -e "use taobao;create table t5 (id int not null primary key auto_increment,name varchar(20) not null);"

mysql -S /data/3308/mysql.sock -e "use taobao;create table t5 (id int not null primary key auto_increment,name varchar(20) not null);"
重啟mycat
mycat restart
mysql -uroot -p123456 -h10.0.0.51 -P8066
use TESTDB
insert into t5(id,name) values(1,'bj');
insert into t5(id,name) values(2,'sh');
insert into t5(id,name) values(3,'bj');
insert into t5(id,name) values(4,'sh');
insert into t5(id,name) values(5,'tj');

a b c d
join
t

select t1.name ,t.x from t1
join t
select t2.name ,t.x from t2
join t
select t3.name ,t.x from t3
join t

使用場景:
如果你的業務中有些數據類似於數據字典,比如配置文件的配置,
常用業務的配置或者數據量不大很少變動的表,這些表往往不是特別大,
而且大部分的業務場景都會用到,那麼這種表適合於Mycat全局表,無須對數據進行切分,
要在所有的分片上保存一份數據即可,Mycat 在Join操作中,業務表與全局表進行Join聚合會優先選擇相同分片內的全局表join,
避免跨庫Join,在進行數據插入操作時,mycat將把數據分發到全局表對應的所有分片執行,在進行數據讀取時候將會隨機獲取一個節點讀取數據。

vim schema.xml
<table name="t_area" primaryKey="id" type="global" dataNode="sh1,sh2" />

後端數據准備
mysql -S /data/3307/mysql.sock
use taobao
create table t_area (id int not null primary key auto_increment,name varchar(20) not null);

mysql -S /data/3308/mysql.sock
use taobao
create table t_area (id int not null primary key auto_increment,name varchar(20) not null);

重啟mycat
mycat restart

測試:
mysql -uroot -p123456 -h10.0.0.52 -P8066

use TESTDB
insert into t_area(id,name) values(1,'a');
insert into t_area(id,name) values(2,'b');
insert into t_area(id,name) values(3,'c');
insert into t_area(id,name) values(4,'d');

A
join
B
為了防止跨分片join,可以使用E-R模式
A join B
on a.xx=b.yy
join C
on A.id=C.id
<table name="A" dataNode="sh1,sh2" rule="mod-long">
<childTable name="B" joinKey="yy" parentKey="xx" />
</table>

D. 想做java開發,都要學什麼

首年的學java基礎,然後是資料庫,現在用的多的資料庫Oracle和Mysql。增刪改查是最基本的,最好sql調優也要會,然後就是前端的東西,html,css,js,jquery等,還有會一些前端框架,BootStrap,Vue,Vue是現在最火的前端框架,最好學一下。最後就是一些比較火的框架,持久層的Mybatis,Spring,SpringMvc等,現在很火的Springboot都要學,微服務治理框架SpringCloud。還有其他的一些技術,redis,Linux操作系統,es等。都學完了差不多就可以找工作了

E. linux操作系統中 cat /proc/devices /*cat,這個裡面的星號是什麼意思,加和不加有什麼區別

cat /proc/devices可以查到該目錄下所有掛在的軟硬體設備吧
/*cat 這個是不是你打錯什麼命令了,我還沒見過這個命令呢

*是所有操作系統中的通配符,就是可以匹配所有的內容。比如有下面四個詞:
中國人
中國
中華人民共和國
中國政府

這四個詞可以使用 中* 就可以全部匹配到!

F. linux下的 資料庫 有哪些

你要的全在下面:資料庫已經有4代了產品很多。

DBA課程更新內容大綱:

序章 DBA職業體系與資料庫產品趨勢

G. Mycat集群部署(高可用)

MyCat 官方推薦使用 HAProxy 做 MyCat 的高可用負載均衡代理。
HAProxy 是一款提供高可用性、負載均衡以及基於 TCP(第四層)和 HTTP(第七層)應用的代理軟體,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。
MyCat 服務主機上需要開放檢測埠用來檢測 mycat 服務的狀態,提供給 HAProxy 對 MyCat 的服務狀態進行檢測判斷。
檢測 mycat 服務狀態以通過xinetd 來實現, 使得HAProxy 可以用 httpchk 來檢測 MyCat 的存活狀態。

1、安裝xinetd:

2、修改配置
檢查是否有includedir /etc/xinetd.d,如果沒有該配置需要加上:

3、檢查 /etc/xinetd.d 目錄
檢查是否有 /etc/xinetd.d 目錄,如果沒有該目錄需要加上:

4、配置存活狀態檢測
增加 MyCat 存活狀態檢測服務配置:

5、配置服務腳本
添加服務腳本/usr/local/bin/mycat_status:

6、添加可執行許可權

7、配置啟動服務
在 /etc/services 中加入 mycat_status 服務:

保存後重啟:

9、開放埠
MyCat 服務主機的防火牆上打開 48700 埠:

設置開機啟動:

[:[port]] 指定將客戶端連接請求發往此伺服器時的目標埠,此為可選項
[param*] 為此 server 設定的一系列參數,均為可選項,參數比較多,下面僅說明幾個常用的參數:
weight: 權重,默認為 1,最大值為 256, 0 表示不參與負載均衡
backup: 設定為備用伺服器,僅在負載均衡場景中的其他 server 均不可以啟用此 server;
check: 啟動對此 server 執行監控狀態檢查,其可以藉助於額外的其他參數完成更精細的設定;
inter: 設定監控狀態檢查的時間間隔,單位為毫秒,默認為 2000,
也可以使用 fastinter 和 downinter 來根據伺服器端專題優化此事件延遲
rise: 設置 server 從離線狀態轉換至正常狀態需要檢查的次數(不設置的情況下,默認值為 2);
fall: 設置 server 從正常狀態轉換至離線狀態需要檢查的次數(不設置的情況下,默認值為 3);
cookie: 為指定 server 設定 cookie 值,此處指定的值將會在請求入站時被檢查,第一次為此值挑選的 server 將會被後續的請求所選中,其目的在於實現持久連接的功能;
maxconn: 指定此伺服器接受的最大並發連接數,如果發往此伺服器的連接數目高於此處指定的值,其將被放置於請求隊列,以等待其他連接被釋放。

默認情況下 haproxy 是沒有日誌的,如果有需要則配置系統的 syslog, 也就是 linux 系統中的 rsyslog 服務。

修改配置

增加haproxy日誌配置文件

修改配置:

配置生效:

閱讀全文

與linux安裝mycat相關的資料

熱點內容
cocos2dluapdf 瀏覽:491
假的加密鎖靠譜嗎 瀏覽:176
經營聖手伺服器怎麼調 瀏覽:749
arduino手機編程 瀏覽:481
西醫pdf下載 瀏覽:29
後浪電影學院pdf 瀏覽:813
程序員怎麼做到不被人嫉妒 瀏覽:669
cmd新建文件夾md命令 瀏覽:570
php數組中的數值排序 瀏覽:832
安卓手機怎麼避免小孩內購 瀏覽:171
聯想伺服器出現黃色嘆號怎麼辦 瀏覽:991
約翰編譯器製作教程 瀏覽:130
大地pdf 瀏覽:109
pdfplus 瀏覽:577
匯編O命令 瀏覽:970
plt轉pdf 瀏覽:365
魔獸60宏命令大全 瀏覽:479
php志願者網站源碼 瀏覽:875
貿易pdf 瀏覽:497
dbug命令 瀏覽:352