溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql主從復(fù)制及Tomcat的相關(guān)介紹

發(fā)布時(shí)間:2020-07-05 06:05:14 來(lái)源:網(wǎng)絡(luò) 閱讀:790 作者:paomom 欄目:MySQL數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)常遇到的問(wèn)題:
1.向上拓展 scale up( 個(gè)體本身 硬件的拓展) 缺點(diǎn):容易達(dá)到極限
2.向外拓展 scale out(計(jì)算機(jī)的個(gè)數(shù),組合成集群)
摩爾定律:每18個(gè)月芯片的技術(shù)翻一倍,價(jià)格增長(zhǎng)一倍,體積減少一倍
mysql的主從實(shí)現(xiàn):
企業(yè)級(jí)數(shù)據(jù)庫(kù)高可用構(gòu)架圖:
mysql內(nèi)建的復(fù)制功能是構(gòu)建大型,高性能應(yīng)用程序的基礎(chǔ)。

mysql復(fù)制的特點(diǎn):

*mysql復(fù)制工作如何進(jìn)行:

mysql的主從復(fù)制是異步的

binlog二進(jìn)制日志

dump:主mysql中的線程,它會(huì)把二進(jìn)制日志
I/O線程:在主的mysql上拉二進(jìn)制文件,記錄在relaylog中
SQL線程:從relaylog中拉出日志內(nèi)容,去往數(shù)據(jù)庫(kù)中寫
mysql的主從復(fù)制解決高可用的問(wèn)題

實(shí)戰(zhàn)演練:
mysql的主從實(shí)現(xiàn)

 主:
    vim /etc/my.cnf
    server-id=1  讓服務(wù)器有唯一的ID號(hào)
    log_bin=mysql-bin  開(kāi)啟二進(jìn)制文件
    skip-name-resolve 名字解析
    hostname mysql-master 修改主機(jī)名
    systemctl start mariadb
    cd /var/lib/mysql  ls 查看是否生成二進(jìn)制日志
    mysql -uroot -p
     >GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO slave@'172.17./%.%' IDENTIFIED BY 'magedu';授權(quán)
   //  >flush tables with read lock 給表加鎖 
   //  >unlocak tables 解鎖
     >create database magedu;
     >use magedu;
     >create table m26(id int not null,name char(20));
     >show create table m26 \G;
     >insert into m26 values(1,'laowang');
     > show binlog events;
     > show master status;

從:

    vim /etc/mysql
    server-id=2
    relay-log=mysql-relay-bin
    read_only =1
    log_bin =mysql-bin
    log_slave_updates=1
    systemctl start mariadb
    cd /var/lib/mysql  ls 查看是否生成二進(jìn)制日志 
    啟動(dòng)復(fù)制線程之前,指定服務(wù)器的配置
    mysql -uroot -p
    >CHANGE MASTER TO MASTER_HOST='172.17.0.159',
     MASTER_USER='SLAVE',
     MASTER_PASSWORD='magedu',
     MASTER_LOG_FILE='mysql-bin.000001',
     MASTER_LOG_POS=811;
    > start slave;
    > show tabless;
    >create tables m27(id int not null,name char(20)); 在從服務(wù)器上插表
    >select * from m26;

show slave status\G 查看是否成功

實(shí)現(xiàn)主從從構(gòu)架:
從節(jié)點(diǎn)需要開(kāi)啟二進(jìn)制日志,可以搭建主從從構(gòu)架,

mysql的復(fù)制過(guò)濾器:僅限有一個(gè)或幾個(gè)數(shù)據(jù)相關(guān)的數(shù)據(jù),而非所有,由復(fù)制過(guò)濾器進(jìn)行

什么是自增長(zhǎng)ID:

什么是主鍵:關(guān)系型數(shù)據(jù)中的一條記錄中有若干個(gè)屬性,若其中某一個(gè)屬性組(注意是組)能夠唯一標(biāo)識(shí)一條記錄,該屬性組就可以成為一個(gè)主鍵
主鍵的作用:1.可以保證數(shù)據(jù)的唯一,不會(huì)產(chǎn)生冗余的數(shù)據(jù) 2.可以加快數(shù)據(jù)的操作速度
外鍵:用來(lái)鏈表查詢
索引:它是某個(gè)表中一列或若干列值的集合和相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁(yè)的邏輯指針清單
索引的作用:是快速幫助查詢數(shù)據(jù)

mysql互為主從:

    1.vim /etc/my.cnf
      server-id=1
      skip-name-resolve
      relay-log=mysql-relay-bin
      log-bin=mysql-bin
      log_slave_updates=1
      auto_increment_increment=2
      auto_increment_offset=1
     # replicate_do_db=magedu
      systemctl restart mariadb
      mysql -uroot -p 
     >show databases
     >show master status;
     >CHANGE MASTER TO MASTER_HOST='172.17.0.170',
     MASTER_USER='SLAVE',
     MASTER_PASSWORD='magedu',
     MASTER_LOG_FILE='mysql-bin.000001',
     MASTER_LOG_POS=245;
     >start slave;
     >show slave status;
     >use magedu
     >create table userinfo(id int PRIMARY KEY AUTO_INCREMENT, name varchar(50) NOT NULL);
     >show tables;
     >desc userinfo;查看表
     >insert into userinfo(name)value('xiao'),('da'),('lao');
     >select * from userinfo;
    2.vim /etc/my.cnf
      server-id=2
      relay-log=mysql-relay-bin
      log-bin=mysql-bin
      log_:wqslave_updates=1
      auto_increment_increment=2
      auto_increment_offset=2
     # replicate_do_db=magedu
      systemctl restart mariadb        
      mysql -uroot -p
      >show databases
      >show slave status\G;     
      >CHANGE MASTER TO MASTER_HOST='172.17.0.159',
       MASTER_USER='SLAVE',
       MASTER_PASSWORD='magedu',
       MASTER_LOG_FILE='mysql-bin.000002',
       MASTER_LOG_POS=245;
      >start slave;
      >show slave status;
      >use magedu;
      >show tables;
      >insert into userinfo(name)value('ni'),('wo'),('ta');
      >select * from userinfo;

半同步復(fù)制:基于互為主從復(fù)制進(jìn)行的操作
主節(jié)點(diǎn):

     1. > INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
        >SHOW GLOBA VARIABLES LIKE 'rpl_semi%';
        >set global rpl_semi_sync_master_enabled =1;
        >stop slave;
        >start slave;
        cd /var/lib/mysql
        cd /var/log/mariadb
        tail -200 mariadb.log 查看日志 

     2. >INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_slave.so';
        >SHOW GLOBA VARIABLES LIKE 'rpl_semi%';
        >set global rpl_semi_sync_master_enabled =1;

mysql高可用構(gòu)架之MHA:
1.安裝配置MHA
2.準(zhǔn)備基于SSH互信通信環(huán)境
3.進(jìn)行安裝包安裝 yum install mha4mysql..... 在ftp上 n裝ode 包也需要
4.初始化MHA,進(jìn)行配置

mysql主從復(fù)制技術(shù)有哪些好處:提高性能,實(shí)現(xiàn)高可用
I/O線程和SQL線程

ysql讀寫分離,分庫(kù)分表和優(yōu)化介紹

select for update
中間件:mysql proxy實(shí)現(xiàn)mysql的代理,one proxy(mysql的代理)aliSQL proxySQL
動(dòng)態(tài)請(qǐng)求:php-->server node1
靜態(tài)請(qǐng)求:css images js html-->server node2

分庫(kù)分表:
1.水平拆分
2.垂直拆分
mysql優(yōu)化:
1.可以用數(shù)據(jù)緩存 常見(jiàn)的memcached
2.數(shù)據(jù)庫(kù)生身有很多的緩存機(jī)制,可使用對(duì)應(yīng)的緩存策略
3.對(duì)數(shù)據(jù)來(lái)說(shuō),盡可能使用索引
4.對(duì)請(qǐng)求而言,可以實(shí)現(xiàn)讀寫分離,對(duì)讀請(qǐng)求進(jìn)行負(fù)載均衡
5.對(duì)大數(shù)據(jù)庫(kù),可根據(jù)業(yè)務(wù)邏輯進(jìn)行分庫(kù)分表
6.所有的優(yōu)化,盡可能往內(nèi)存中存放

Tomcat和servlet

編程語(yǔ)言分類:
硬件級(jí):微碼編程,匯編語(yǔ)言
系統(tǒng)級(jí):C C++...... (C語(yǔ)言性能高)
應(yīng)用級(jí):JAVA,PHP,Python,Ruby,Perl,C#,.......

面向?qū)ο螅簩?duì)象就是對(duì)事物的一種抽象描述

面向過(guò)程:按照事情發(fā)展的順序一步一步的進(jìn)行操作

JAVA使用的是面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)方法,并且JAVA可以實(shí)現(xiàn)多層構(gòu)架對(duì)于跨平臺(tái)的大型企業(yè)應(yīng)用系統(tǒng)來(lái)講,JAVA幾乎已經(jīng)成為唯一的選擇

PHP:PHP適合于快速開(kāi)發(fā),中小型應(yīng)用系統(tǒng),開(kāi)發(fā)成本低,能夠?qū)ψ儎?dòng)的需求作出快速的反應(yīng)

JAVA編譯器(字節(jié)碼)-》虛擬機(jī)(解釋器)-》解釋器(翻譯)-》機(jī)器碼

.java->.class->機(jī)器碼

JAVA運(yùn)行原理:
編程語(yǔ)言編譯類型大致可以分為三種:
1.源代碼-編譯器-本機(jī)代碼-運(yùn)行
2.源代碼-解釋器-本機(jī)代碼-運(yùn)行
3.源代碼-中間語(yǔ)言-虛擬機(jī)(相當(dāng)于解釋器)-本機(jī)代碼-運(yùn)行
可以發(fā)現(xiàn)最后都需要變成本機(jī)代碼才能執(zhí)行

JAVA三大分支:
1.J2SE--java standard edition 標(biāo)準(zhǔn)版本
2.J2ME--java Micro edition 一般 位于嵌入式應(yīng)用
3.J2EE--java Enterprise Edition 一般為服務(wù)器端程序的應(yīng)用

servlet完全依賴于服務(wù)器端
servlet的本質(zhì)是一個(gè)幫助程序

靜態(tài)網(wǎng)站技術(shù)和動(dòng)態(tài)網(wǎng)站技術(shù):
servlet技術(shù)是什么:作為Java正營(yíng)的CGI解決方案
servlet容器的作用:Servlet容器也叫做servlet引擎,是web服務(wù)器或應(yīng)用程序服務(wù)器的一部分,用于在發(fā)送的請(qǐng)求和響應(yīng)之上提供網(wǎng)絡(luò)服務(wù),解碼基于MIME的請(qǐng)求,格式化基于MIME的響應(yīng)
有了servlet之后用戶通過(guò)單擊某個(gè)鏈接或者直接在瀏覽器的地址中輸入U(xiǎn)RL來(lái)訪問(wèn)servlet

servlet容器能提供什么:
1.通信支持:利用容器提供的方法,你能輕松的讓servlet與web服務(wù)器對(duì)話,而不用自己建立serversocket,監(jiān)聽(tīng)端口
2.生命周期管理
3.多線程支持
4.JSP支持

Tomcat是Apache軟件基金會(huì)

Tomcat的核心分為三個(gè)部分:
1.web容器--處理靜態(tài)的頁(yè)面
2.catalina--一個(gè)servlet容器---處理servlet
3.還有有就是JSP容器,它就是把JSP頁(yè)面翻譯成為一個(gè)servlet

JSP和servlet的區(qū)別:JSP就是在HTML里面寫Java代碼,servlet就是在Java里面寫HTML代碼...其實(shí)JSP經(jīng)過(guò)容器解釋器之后就是servlet
JSEE-->sevlet--->CGI
java寫的sevlet程序
Java容器過(guò)來(lái)調(diào)用
JSP html-->java標(biāo)簽-->sevlet

tomcat和servlet的關(guān)系:tomcat實(shí)際上就是servlet用Java編寫的程序

JRE顧名思義是Java運(yùn)行時(shí)的環(huán)境,包含了Java虛擬機(jī),Java基礎(chǔ)類庫(kù)
JDK顧名思義是Java開(kāi)發(fā)工具包,是程序使用Java語(yǔ)言編寫Java程序所開(kāi)發(fā)的工具包,是提供給程序員使用的。

JDK:yum install jdk-8u144-linux

Java -version可以查看

tomcat安裝方式:

1.lftp 172.17.0.1
 >cd pub
 >cd sources
 >ls
 >cd 7.x86_64 
 >cd jdk
 >ls
 >get jdk-8u144-linux 下載

yum localinstall jdk......
默認(rèn)路徑
cd /usr/lib/jvm
cd /usr/java/jdk1.8.0_144/bin
cd .. java]

2.設(shè)置環(huán)境變量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

chmod +x /etc/profile.d/java.sh
. /etc/profile.d/java.sh 進(jìn)行讀取

echo $JAVA_HOME 查看 Jdk

Java -version再次可以查看,版本是否改變

3.lftp 172.17.0.1
  cd pub
  cd sources
  cd 7.x86_64
  cd tomcat
  mget apache-tomcat-7.0.78.tar.gz solo-2.2.0.war(部署文件)
  1. tar -xvf apache.....
    cd apache-tomcat-7.0.78
    ls 查看
    cd ..
    mv apache-tomcat-7.0.78 /usr/local/tomcat
    cd /usr/local/tomcat

    ls
    cd bin
    ./catalina.sh start 運(yùn)行tomcat
    netstat -tunlp

172.17....:8080 訪問(wèn)測(cè)試

cd /conf server.xml 主配置配置文件

           1.server:server表示整個(gè)的Catalina servlet容器。   
           2.service :service是存活在server內(nèi)部的中間組件
           3.Connector組件:連接器處理與客戶端的通信
           4.Engine組件:在tomcat中,每個(gè)service只能包含一個(gè)servlet引擎
           5.Host組件:位于engine內(nèi)部用于接收請(qǐng)求并進(jìn)行相應(yīng)處理的主機(jī)或虛擬主機(jī)類似Nginx server
           6.Context組件:一個(gè)context表示了一個(gè)web應(yīng)用程序,運(yùn)行在特定的虛擬主機(jī)中,一個(gè)host可以包含多個(gè)context(代表web應(yīng)用程序)
                       類似Nginx location
        web.xml web應(yīng)用程序描述文件
        context.xml 可以用來(lái)配置數(shù)據(jù)庫(kù)之類的信息
        logging.properties日志系統(tǒng)相關(guān)的配置

tomcat頁(yè)面: manmger

         admin

測(cè)試jsp腳本
cd webapps
mkdir test
cd test
vim index.jsp

tomcat相關(guān)配置:
cd /usr/local/tomcat
cd conf
vim tomcat-users.xml
< role rolename="manager-gui"
< role rolename="admin-gui"
< user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

./bin/catalina.sh stop
./bin/catalina.sh start

Tomcat的部署:
將ftp上的solo包部署到Tomcat上

cp sols-2.2.0.war /usr/local/tomcat/webapps

cd webapps
mv solo-2.2.0.war /tmp

cd webapps
mv /tmp/solo-2.2.0.war ./

cd logs日志存放路徑

tomcat組成原理:
service:就是連接器與引擎組合在一起
connector:連接器用來(lái)接收用戶的請(qǐng)求
engine:引擎是用來(lái)處理用戶的請(qǐng)求
host:就是虛擬主機(jī)
context:相當(dāng)于location ,也就是相當(dāng)于路由,也可做匹配
servlet:就是程序

JSP webapp的組織結(jié)構(gòu):
/:webapps的根目錄;
index.jsp主頁(yè); cd /manager

maven 項(xiàng)目管理工具 www.oschina.net java開(kāi)源項(xiàng)目

mysql -uroot -p -D magedu < jeesns.sql 在magedu數(shù)據(jù)庫(kù)中導(dǎo)文件

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI