天天看點

linux檢視mysql資料庫版本,Java系列學習進階視訊

01 分布式限流:Nginx+ZooKeeper

1.1 分布式限流之Nginx

  • 請解釋一下什麼是 Nginx?
  • 請列舉 x Nginx 的一些特性。
  • 請列舉 x Nginx 和 和 Apache 之間的不同點
  • 請解釋 x Nginx 如何處理 P HTTP 請求。
  • 在 x Nginx 中,如何使用未定義的伺服器名稱來阻止處理請求?
  • 使用 “ 反向代理伺服器 ”
  • 請列舉 x Nginx 伺服器的最佳用途。
  • 請解釋 x Nginx 伺服器上的 r Master 和 和 r Worker 程序分别是什麼?
  • 請解釋你如何通過不同于 0 80 的端口開啟 Nginx?
  • 請解釋是否有可能将 x Nginx 的錯誤替換為 2 502 錯誤?
  • 在 x Nginx 中,解釋如何在 L URL 中保留雙斜線? ?
  • 請解釋 e ngx_http_upstream_module 的作用是什麼?
  • 請解釋什麼是 K C10K 問題?
  • 請陳述 s stub_status 和 和 r sub_filter 指令的作用是什麼?
  • 解釋 x Nginx 是否支援将請求壓縮到上遊?
  • 解釋如何在 x Nginx 中獲得目前的時間?
  • 用 x Nginx 伺服器解釋s -s 的目的是什麼?
  • 解釋如何在 x Nginx 伺服器上添加子產品?

分布式限流之Nginx的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:Nginx+常見應用技術指南[Nginx++Tips]+第二版

linux檢視mysql資料庫版本,Java系列學習進階視訊

1.2 分布式限流之ZooKeeper

  • ZooKeeper 是什麼?
  • ZooKeeper 提供了什麼?
  • Zookeeper 檔案系統
  • 四種類型的 znode
  • Zookeeper 通知機制
  • Zookeeper 做了什麼?
  • zk 的命名服務(檔案系統)
  • zk 的配置管理(檔案系統、通知機制)
  • Zookeeper 叢集管理(檔案系統、通知機制)
  • Zookeeper 分布式鎖(檔案系統、通知機制)
  • 擷取分布式鎖的流程
  • Zookeeper 隊列管理(檔案系統、通知機制)
  • Zookeeper 資料複制
  • Zookeeper 工作原理
  • zookeeper 是如何保證事務的順序一緻性的?
  • Zookeeper 下 Server 工作狀态
  • zookeeper 是如何選取主 leader 的?
  • 分布式通知和協調
  • 機器中為什麼會有 leader?
  • zk 節點當機如何處理?
  • Zookeeper 同步流程
  • zookeeper 負載均衡和 nginx 負載均衡差別
  • zookeeper watch 機制

分布式限流之ZooKeeper的答案解析如下

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:ZK開發手冊

linux檢視mysql資料庫版本,Java系列學習進階視訊

02 分布式通訊:ActiveMQ+Kafka+RabbitMQ

2.1 分布式通訊之ActiveMQ

  • 什麼是 ActiveMQ?
  • ActiveMQ 伺服器當機怎麼辦?
  • 丢消息怎麼辦?
  • 持久化消息非常慢
  • 消息的不均勻消費。
  • 死信隊列。
  • ActiveMQ 中的消息重發時間間隔和重發次數嗎?

分布式通訊之ActiveMQ的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:手寫RocketMQ筆記

linux檢視mysql資料庫版本,Java系列學習進階視訊

2.2 分布式通訊之kafka

  • Kafka 的設計時什麼樣的呢?
  • 資料傳輸的事物定義有哪三種?
  • Kafka 判斷一個節點是否還活着有那兩個條件?
  • producer 是否直接将資料發送到 broker 的 leader(主節點)?
  • Kafa consumer 是否可以消費指定分區消息?
  • Kafka 消息是采用 Pull 模式,還是 Push 模式?
  • Kafka 存儲在硬碟上的消息格式是什麼?
  • Kafka 高效檔案存儲設計特點:
  • Kafka 與傳統消息系統之間有三個關鍵差別
  • Kafka 建立 Topic 時如何将分區放置到不同的 Broker 中
  • Kafka 建立的分區會在哪個目錄下建立
  • partition 的資料如何儲存到硬碟
  • kafka 的 ack 機制
  • Kafka 的消費者如何消費資料
  • 消費者負載均衡政策
  • 資料有序
  • kafaka 生産資料時資料的分組政策

分布式通訊之kafka的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:Kafka源碼解析與實戰

linux檢視mysql資料庫版本,Java系列學習進階視訊

2.3 分布式通訊之RabbitMQ

  • RabbitMQ 中的 broker 是指什麼?cluster 又是指什麼?
  • 什麼是中繼資料?中繼資料分為哪些類型?包括哪些内容?與 cluster 相關的中繼資料有哪些?中繼資料是如何儲存的?中繼資料在 cluster 中是如何分布的?
  • RAM node 和 disk node 的差別?
  • RabbitMQ 上的一個 queue 中存放的 message 是否有數量限制?
  • RabbitMQ 概念裡的 channel、exchange 和 queue 這些東東是邏輯概念,還是對應着程序實體?這些東東分别起什麼作用?
  • vhost 是什麼?起什麼作用?
  • 在單 node 系統和多 node 構成的 cluster 系統中聲明 queue、exchange ,以及進行 binding 會有什麼不同?
  • 用戶端連接配接到 cluster 中的任意 node 上是否都能正常工作?
  • cluster 中 node 的失效會對 consumer 産生什麼影響?若是在 cluster 中建立了mirrored queue ,這時 node 失效會對 consumer 産生什麼影響?
  • 能夠在地理上分開的不同資料中心使用 RabbitMQ cluster 麼?
  • 為什麼 heavy RPC 的使用場景下不建議采用 disk node ?
  • 向不存在的 exchange 發 publish 消息會發生什麼?向不存在的 queue 執行consume 動作會發生什麼?
  • routing_key 和 binding_key 的最大長度是多少?
  • RabbitMQ 允許發送的 message 最大可達多大?
  • 什麼情況下 producer 不主動建立 queue 是安全的?
  • “dead letter”queue 的用途?
  • 為什麼說保證 message 被可靠持久化的條件是 queue 和 exchange 具有durable 屬性,同時 message 具有 persistent 屬性才行?
  • 什麼情況下會出現 blackholed 問題?
  • 如何防止出現 blackholed 問題?
  • Consumer Cancellation Notification 機制用于什麼場景?
  • Basic.Reject 的用法是什麼?
  • 為什麼不應該對所有的 message 都使用持久化機制?
  • RabbitMQ 中的 cluster、mirrored queue,以及 warrens 機制分别用于解決什麼問題?存在哪些問題?

分布式通訊之RabbitMQ的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:RabbitMQ實戰指南

linux檢視mysql資料庫版本,Java系列學習進階視訊

03 分布式緩存:memcached+MongoDB+Redis

3.1 分布式緩存之memcached

  • memcached 是怎麼工作的?
  • memcached 最大的優勢是什麼?
  • memcached 和伺服器的 local cache (比如 PHP 的 的 APC 、mmap 檔案等)相比,有什麼優缺點?
  • memcached 和 和 MySQL 的 的 query cache 相比,有什麼優缺點?
  • memcached 的 的 cache 機制是怎樣的?
  • memcached 如何實作備援機制?
  • 我需要把 memcached 中的 item 批量導出導入,怎麼辦?
  • memcached 如何處理容錯的?
  • 如何将 memcached 中 中 item 批量導入導出?
  • memcached 是如何做身份驗證的?
  • memcached 的多線程是什麼?如何使用它們?
  • memcached 能接受的 key 的最大長度是多少?
  • memcached 對 對 item 的過期時間有什麼限制?
  • memcached 最大能存儲多大的單個 item ?
  • 為什麼單個 item 的大小被限制在 1M byte 之内?

分布式緩存之memcached的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

3.2 分布式緩存之MongoDB

  • 你說的 NoSQL 資料庫是什麼意思?NoSQL 與 RDBMS 直接有什麼差別?為什麼要使用和不使用NoSQL 資料庫?說一說 NoSQL 資料庫的幾個優點?
  • NoSQL 資料庫有哪些類型?
  • MySQL 與 MongoDB 之間最基本的差别是什麼?
  • 你怎麼比較 MongoDB、CouchDB 及 CouchBase?
  • MongoDB 成為最好 NoSQL 資料庫的原因是什麼?
  • 32 位系統上有什麼細微差别?
  • journal 回放在條目(entry)不完整時(比如恰巧有一個中途故障了)會遇到問題嗎?
  • 分析器在 MongoDB 中的作用是什麼?
  • 名字空間(namespace)是什麼?
  • 如果使用者移除對象的屬性,該屬性是否從存儲層中删除?
  • 能否使用日志特征進行安全備份?
  • 允許空值 null 嗎?
  • 更新操作立刻 fsync 到磁盤?
  • 如何執行事務/加鎖?
  • 為什麼我的資料檔案如此龐大?
  • 啟用備份故障恢複需要多久?
  • 什麼是 master 或 primary?
  • 什麼是 secondary 或 slave?
  • 我必須調用 getLastError 來確定寫操作生效了麼?
  • 我應該啟動一個叢集分片(sharded)還是一個非叢集分片的 MongoDB 環境?
  • 分片(sharding)和複制(replication)是怎樣工作的?
  • 資料在什麼時候才會擴充到多個分片(shard)裡?
  • 當我試圖更新一個正在被遷移的塊(chunk)上的文檔時會發生什麼?
  • 如果在一個分片(shard)停止或者很慢的時候,我發起一個查詢會怎樣?
  • 我可以把 moveChunk 目錄裡的舊檔案删除嗎?
  • 我怎麼檢視 Mongo 正在使用的連結?
  • 如果塊移動操作(moveChunk)失敗了,我需要手動清除部分轉移的文檔嗎?
  • 如果我在使用複制技術(replication),可以一部分使用日志(journaling)而其他部分則不使用嗎?
  • 當更新一個正在被遷移的塊(Chunk)上的文檔時會發生什麼?
  • MongoDB 在 A:{B,C}上建立索引,查詢 A:{B,C}和 A:{C,B}都會使用索引嗎?
  • 如果一個分片(Shard)停止或很慢的時候,發起一個查詢會怎樣?
  • MongoDB 支援存儲過程嗎?如果支援的話,怎麼用?
  • 如何了解 MongoDB 中的 GridFS 機制,MongoDB 為何使用 GridFS 來存儲檔案?

分布式緩存之MongoDB的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:MongoDB權威指南

linux檢視mysql資料庫版本,Java系列學習進階視訊

3.3 分布式緩存之Redis

  • redis 簡介
  • 為什麼要用 redis /為什麼要用緩存(高性能、高并發)
  • 為什麼要用 redis 而不用 map/guava 做緩存?
  • redis 和 memcached 的差別
  • redis 常見資料結構以及使用場景分析(String、Hash、List、Set、Sorted Set)
  • redis 設定過期時間
  • redis 記憶體淘汰機制(MySQL裡有2000w資料,Redis中隻存20w的資料,如何保證Redis中的資料都是熱點資料?)
  • redis 持久化機制(怎麼保證 redis 挂掉之後再重新開機資料可以進行恢複)
  • redis 事務
  • Redis 常見異常及解決方案(緩存穿透、緩存雪崩、緩存預熱、緩存降級)
  • 分布式環境下常見的應用場景(分布式鎖、分布式自增 ID)
  • Redis 叢集模式(主從模式、哨兵模式、Cluster 叢集模式)
  • 如何解決 Redis 的并發競争 Key 問題
  • 如何保證緩存與資料庫雙寫時的資料一緻性?

分布式緩存之Redis的答案解析如下:

linux檢視mysql資料庫版本,Java系列學習進階視訊

for:Redis設計與實作

linux檢視mysql資料庫版本,Java系列學習進階視訊

最後

對于很多Java工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助。

整理的這些資料希望對Java開發的朋友們有所參考以及少走彎路,本文的重點是你有沒有收獲與成長,其餘的都不重要,希望讀者們能謹記這一點。

再免費分享一波我的Java面試真題+視訊學習詳解+技能進階書籍

點選這裡即可免費擷取以上我收集整理的全部學習資料

分布式緩存之Redis的答案解析如下:

[外鍊圖檔轉存中…(img-89mPkiKx-1624789465557)]

for:Redis設計與實作

[外鍊圖檔轉存中…(img-YffsVvXv-1624789465558)]

最後

對于很多Java工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助。

整理的這些資料希望對Java開發的朋友們有所參考以及少走彎路,本文的重點是你有沒有收獲與成長,其餘的都不重要,希望讀者們能謹記這一點。

再免費分享一波我的Java面試真題+視訊學習詳解+技能進階書籍

點選這裡即可免費擷取以上我收集整理的全部學習資料

linux檢視mysql資料庫版本,Java系列學習進階視訊

繼續閱讀