MySQL主從原理
MySQL主從主要涉及了兩個線程:IO線程和SQL線程
兩個日誌: 二進制日誌(binlog)和中繼日誌(relaylog)
MySQL主上寫入內容,內容會存儲至log-bin日誌中。MySQL從會通過IO線程,從MySQL主上拿到數據,
並且將數據存儲到relay-log日誌中,再通過SQL線程將relay-log日誌中拿到的數據進行執行,從而實現了
主從同步。
DNS原理
DNS原理分爲兩種情況:
1.本地之前查找過,有過緩存
2.本地沒有記錄
一:本地如果有緩存的話,會向本地緩存中找到對應的IP地址,開始三次握手,訪問完畢後,
就開始了四次揮手,然後斷開連接
二:如果本地沒有緩存記錄的話,會通過DNS系統,進行逐級的訪問,直到找到對應的IP
三次握手 四次揮手的原理
第一次握手:客戶端向服務端發送請求
第二次握手:服務端確認接收到請求,並且給客戶端一個迴應
第三次握手:客戶端確認收到這個迴應之後,然後給服務端發送一個確認的迴應
第一次揮手:客戶端向服務端發送斷開的請求
第二次揮手:服務端收到請求後,向客戶端發送一個迴應,表示確認已經收到
第三次揮手:客戶端收到服務端發來的確認回覆,將服務斷開,併發送給服務端
第四次揮手:服務端收到斷開消息,然後斷開連接
Linux系統啓動原理
BIOS自檢 —> grub引導程序 —> 加載內核 —> 執行init —> 啓動shell —> login登陸系統
防止暴力破解原理
根據暴力破解進行解決,暴力破解就是一個一個的去試,而防暴力破解就是每次攻擊失敗後,
都將其用戶記錄下來,設定一定的次數,當次數過後,就將該用戶屏蔽。
LVS -DR原理
當客戶端請求VIP時,會將請求先發給Director(調度器),調度器發現請求的是一組集羣服務,根據調度算法將這一請求轉發給RealServer, 在轉發的過程中,僅僅是修改了數據報文中的MAC地址,所以要求DR和RS必須在同一個物理網絡內,這是爲了保證可以通過修改MAC 地址而進行數據報文的轉發。當RealServer處理請求,響應數據,發送響應數據給客戶端,按理說此時的數據包的源IP爲RIP,目標IP爲CIP,雖然能找到客戶端, 但是客戶端是不收該數據包的,因爲並沒有請求該RIP ,現在的做法就是進行IP欺騙,即就是修改源 IP 爲 VIP,但是不可以將VIP設置在出口網卡上,否則會響 應客戶端的arp request,造成client/gateway arp table紊亂,以至於整個load balance都不能正常工作。要在lo接口上配置VIP,並將此 VIP 屏蔽,但是出去時候 的數據包被路由轉換,轉換後的 IP不再是 VIP,所以要重新設置路由
http協議通信原理
先請求行-----請求頭部信息----請求主題信息----頭信息結束後和主題信息之間要空一行
HTTP協議-超文本傳輸協議,指計算機通信網絡中兩臺計算機之間進行通信所必須共同遵守的規定或規則,
它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。當我們在瀏覽器輸入URL後,
瀏覽器給Web服務器發送了一個Request, Web服務器接到Request後進行處理,生成相應的Response,
然後發送給瀏覽器, 瀏覽器解析Response中的HTML,這樣我們就看到了瀏覽器顯示的網頁內容。
CDN工作原理
用戶先去訪問CDN服務器,CDN服務器會查看下自身緩存,如果緩存中存在訪客想要的數據,就會直接發
給用戶,這種直連的返回會提升訪問速度;如果CDN中沒有此項緩存,CDN會去找原服務器請求數據,然
後轉發數據給用戶並同時緩存一份到自身緩存中,下次如果再有任何用戶請求相同數據,CDN可直接從緩
存中讀取
raid5 0 1的原理,區別
raid0:存取速度快,磁盤使用率100% 風險高,數據容易丟失
raid1:一邊讀取,一邊做校準備份,安全 讀寫速度慢,磁盤使用率一半
raid5:讀取速度快,數據安全強 磁盤損壞時,性能最差
訪問網站流程
用戶訪問一個網站網站時,系統會先檢查緩存中有沒有記錄,如果有記錄的話,
會直接進行三次握手,訪問完畢後,在進行四次揮手,訪問完畢。如果緩存中
沒有記錄,那麼會通過DNS進行逐級的尋找,直到找到所需求的東西。
公司的系統應用架構
監控或者日誌分析的四個部分
1.數據收集
2.數據儲存
3.數據分析
4.數據展示
以下服務器最高承受的併發,理論上的數量
mysql:500
tomcat:1200
nginx:20000
緩存有哪些,存儲有哪些,負載均衡有哪些,數據庫有哪些,自動化工具有哪些,消息隊列有哪些
緩存:memchache、redis、CDN
存儲:
負載均衡:nginx,lvs,F5,haproxy,nuster
自動化工具:Puttet,Ansible,SaltStack
消息隊列:Kafka,RabbitMQ,RocketMQ
數據庫:
- 關係型:MySQL,SQL server,Oracle,Sybase,DB2
- 非關係型:FastDB,Memcached,Redis
什麼是消息隊列
消息隊列是在消息傳輸過程中,保存消息的容器。也就是說當你想要在消息
隊列中拿到想要的值的話可以通過值的索引拿到值。
技術發展趨勢
我最擅長的技能
訪問網站的併發量怎麼來的?由什麼決定?
- 平均用戶併發數
- 併發峯值
- 二八原則
- 影響因素:帶寬,用戶數量,硬件配置
PV、UV、最大在線人數、註冊人數、活躍用戶數、日活、留存率、跳轉率分別是什麼
PV:訪問量
UV:併發數
最大在線人數:
註冊人數:
活躍用戶數:
日活:
留存率:新增用戶中經過一段時間後仍然使用該應用的用戶數量佔比,按單位時間進行統計
跳轉率:指在只訪問了入口頁面(例如網站首頁)就離開的訪問量與所產生總訪問量的百分比, 跳轉率=訪問一個頁面後離開網站的次數/總訪問次數
跳板機作用,有哪些跳板機工具
- 作用:保護內部網絡空間不受入侵,解決運維混亂
- 工具:CrazyEye,Teleport,Jumpserver,GateOne,麒麟
虛擬化有哪些,虛擬機和docker區別
- 系統虛擬化:
- VMware
- Intel VT
- Xen
- KVM
- Bochs
- QEMU
- VirtualBox
- 操作虛擬化:
- chroot
- LXC
- Docker
- Linux VServer
- Virtuozzo/OpenVZ
- 虛擬機和Docker區別
- 虛擬機硬件虛擬化,docker操作系統虛擬化
- 虛擬機模擬硬件構建操作系統,docker複用操作系統
- 虛擬機操作系統隔離,docker進程隔離
- 虛擬機安全性強,docker運行速度快
docker有哪幾種網絡
- none:容器有獨立的網絡命名空間,但沒有進行任何網絡設置
- host:容器和宿主機共享網絡命名空間
- Bridge:橋接模式
- container:容器和另一容器共享網絡命名空間
devops怎麼理解的
個人以爲DevOps是一種解決方案或者說現象的統稱,也更像是一種行業規範與標準.其誕生的初衷是爲了解決軟件開發運營維護過程中各個部門之間因爲職責和領域的不同所導致的業務進度滯後及交付質量參差不齊等嚴重問題.不得不說的是雲計算對於互聯網行業的改變是刺激DevOps越來越普及的一個重要因素.它的主要表現形式以目前接觸到的運維領域來看是通過各種代碼倉庫(Gitlab等)和自動化部署平臺(Jenkins等)及自動化部署工具(absible等)來形成的.
它的普及加速了產品發佈的頻率和產品研發的速度,同時也進一步降低了產品發佈的風險,也將運維工程師從高度可重複性的工作中解脫出來;但與之而來的是對於產品質量的進一步要求,因爲更新頻率加快和市場需求的影響,產品的迭代機制必須更爲完善,產品的特點也必須足夠鮮明,否則就會泯然衆人.
代碼上線流程(手動上線,自動上線)
- 手動上線:
- 純手動scp代碼上傳
- 純手動登錄,Git pull或SVN update
- 純手動xftp上傳代碼
- 開發發送壓縮包,rz上傳,解壓部署代碼
- 自動上線
- 配置公共開發環境
- 測試環境
- 代碼倉庫協作開發
- 灰度發佈
- 自動化部署上線交付
- 回滾
服務器安裝好之後,需要做哪方面的調優
- 建立磁盤陣列
- 系統內核升級
- 磁盤分區
- 軟件安裝包配置
- 優化ssh連接關閉selinux
- 更改端口
- 關閉DNS反向解析
- 關閉GSSAPI驗證
- 禁止root用戶遠程登錄
- 更新yum源及必要軟件安裝
- 自動同步時間
- 使用chattr給文件上鎖
- 系統資源配額限制
- 設定tcp_wrappers防火牆
- 保護歷史命令記錄文件
- 配置iptables防火牆規則
- 系統內核參數調優
數據庫備份如何備份?什麼時間備份?
客戶訪問量較少時
- 冷備
- mysqldump+crontab+shell腳本
- 熱備
- Xtrbackup
架構設計的第一個原則是什麼?
分層穩定性
漏洞掃描工具有哪些?
- Qualys
- FoundStone
- Rapid7
- Nessus
- AWVS
- OWASP Zed
- Nikto
- BurpSuite