你花了多久弄明白架構設計?多個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的答案解析如下:

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

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

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

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的答案解析如下

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

for:ZK開發手冊

ZK開發手冊

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

2.1 分布式通訊之ActiveMQ

  • 什么是 ActiveMQ?

  • ActiveMQ 服務器宕機怎么辦?

  • 丟消息怎么辦?

  • 持久化消息非常慢

  • 消息的不均勻消費。

  • 死信隊列。

  • ActiveMQ 中的消息重發時間間隔和重發次數嗎?

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

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

for:手寫RocketMQ筆記

手寫RocketMQ筆記

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的答案解析如下:

kafka面試問題答案解析

for:Kafka源碼解析與實戰

Kafka源碼解析與實戰

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的答案解析如下:

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

for:RabbitMQ實戰指南

RabbitMQ實戰指南

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的答案解析如下:

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

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的答案解析如下:

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

for:MongoDB權威指南

MongoDB權威指南

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的答案解析如下:

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

for:Redis設計與實現

Redis設計與實現

最后

本人也收藏了一份Java面試核心知識點來應付面試,借著這次機會可以免費送給我的讀者朋友們:

目錄:

二面螞蟻金服(交叉面),已拿offer,Java崗定級阿里P6

Java面試核心知識點

一共有30個專題,足夠讀者朋友們應付面試啦,也節省朋友們去到處搜刮資料自己整理的時間!

二面螞蟻金服(交叉面),已拿offer,Java崗定級阿里P6

Java面試核心知識點

  • 如何保證緩存與數據庫雙寫時的數據一致性?

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

[外鏈圖片轉存中…(img-tlHog3Kz-1625826465269)]

for:Redis設計與實現

[外鏈圖片轉存中…(img-6NFaFLyR-1625826465270)]

最后

本人也收藏了一份Java面試核心知識點來應付面試,借著這次機會可以免費送給我的讀者朋友們:

目錄:

[外鏈圖片轉存中…(img-oPs7SQIC-1625826465270)]

Java面試核心知識點

一共有30個專題,足夠讀者朋友們應付面試啦,也節省朋友們去到處搜刮資料自己整理的時間!

[外鏈圖片轉存中…(img-J9qpknYw-1625826465271)]

Java面試核心知識點

資料的領取方式:點贊后【戳面試資料】即可免費獲取哦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385688.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385688.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385688.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

保潔阿姨看完都會了!java面向對象編程開發證書

一、什么是ZooKeeper ZooKeeper是一個分布式服務協調框架,提供了分布式數據一致性的解決方案,基于ZooKeeper的數據結構,Watcher,選舉機制等特點,可以實現數據的發布/訂閱,軟負載均衡,命名服務&…

做了6年的Java,docker端口映射無法外部訪問

1.1. 操作系統簡介 我通過以下四點介紹什么是操作系統: 操作系統(Operating System,簡稱 OS)是管理計算機硬件與軟件資源的程序,是計算機的基石。操作系統本質上是一個運行在計算機上的軟件程序 ,用于管理…

做了6年的Java,mysql配置環境變量mac

一:打破狹窄的技術視野 ①真實項目對外開發系統性講解 ②例如電商、教育行業、社區網站等主流互聯網場景的商業解決方案講解 ③針對不同業務場景海量數據或者訪問量以及及時響應等所面臨的挑戰進行對應的瓶頸分析。 ④拓展技術視野,與一線大廠零距離…

做了三年Java,docker網絡映射配置

數據庫 2.1 池化技術:如何減少頻繁創建數據庫連接的性能損耗?2.2 數據庫優化方案(一):查詢請求增加時,如何做主從分離?2.3 數據庫優化方案(二):寫入數據量增…

入職阿里啦!docker-e命令參數

JAVA基礎 JAVA異常分類及處理異常分類異常的處理方式Throw和throws的區別JAVA反射動態語言反射機制概念 (運行狀態中知道類所有的屬性和方法)Java反射API反射使用步驟(獲取Class對象、調用對象方法)獲取Class對象的3種方法創建對…

算法 | 快速排序

【算法圖解】&#xff1a;數據結構教程李春葆版P378 1. 遞歸代碼&#xff1a; #include<iostream> #include<vector> using namespace std;void quicksort(vector<int> &v, int left, int right) {if (left < right){int key v[left];int low le…

全套學習!java排序sort方法

字節跳動 ?試前?????結 ?試前 頭條的?試是三家?最專業的&#xff0c;每次?試前有專?的HR和你約時間&#xff0c;確定OK后再進??試。每次都是通過視頻?試&#xff0c;因為都是之前都是電話?或現場?&#xff0c;所以視頻?試還是有點不?然。也有?覺得視頻?試…

【排序算法】計數排序

當輸入的元素是 n 個 0 到 k 之間的整數時&#xff0c;它的運行時間是 Θ(n k)。計數排序不是比較排序&#xff0c;排序的速度快于任何比較排序算法。 由于用來計數的數組B的長度取決于待排序數組中數據的范圍&#xff08;等于待排序數組的最大值與最小值的差加上1&#xff0…

全套學習!mysql2003錯誤代碼

正文 在寫這個文章之前&#xff0c;我花了點時間&#xff0c;自己臆想了一個電商系統&#xff0c;基本上算是麻雀雖小五臟俱全&#xff0c;我今天就用它開刀&#xff0c;一步步剖析&#xff0c;我會講一下我們可能會接觸的技術棧可能不全&#xff0c;但是夠用&#xff0c;最后…

全套學習!mysql命令窗口執行sql文件

阿里P8級架構師核心理論落地篇 再造淘寶&#xff0c;貫穿全系&#xff0c;阿里團隊代碼落地&#xff0c;詳細每個版本迭代&#xff0c;拒絕2-3個月PPT架構師再造淘寶之咚寶-技術支撐-完整搭建DevOps再造淘寶之咚寶-統一規則-代碼規范落地解析再造淘寶之咚寶搭建基礎服務再造淘…

java招聘職位描述,附學習筆記+面試整理+進階書籍

面&#xff1a;為什么要使用雙親委派機制去加載類&#xff1f; 答&#xff1a;避免多份同樣字節碼的加載&#xff0c;浪費內存。 類的加載方式 隱式加載&#xff1a;new顯示加載&#xff1a;loadClass、forName等 類的裝載過程如下圖&#xff1a; 面&#xff1a;loadClass和…

94. 二叉樹的中序遍歷

給定一個二叉樹&#xff0c;返回它的中序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [1,3,2] 進階: 遞歸算法很簡單&#xff0c;你可以通過迭代算法完成嗎&#xff1f; 來源&#xff1a;力扣&#xff08;LeetCode&#xff09; 鏈接&#xff1a;http…

判斷兩個結構體是否相等

一、判斷兩個結構體是否相等 判斷兩個結構體是否相等&#xff1a;重載操作符""不能用函數memcpy來判斷兩個結構體是否相等&#xff1a;memcmp函數是逐個字節進行比較的&#xff0c;而struct存在字節對齊&#xff0c;字節對齊時補的字節內容是隨機的&#xff0c;會產生…

java攔截器和過濾器,2021最新版!

正文 現在市面上的算法資料也五花八門&#xff0c;種類繁多&#xff0c;小編也整理了一份不同于市面且有意思的算法資料&#xff0c;不能說多全面&#xff0c;但是是小編花了很長時間整理歸納出來的&#xff0c;自我感覺還行。分享給同事及群里反響都不錯&#xff0c;所以小編…

java排列組合算法優缺點,一招徹底弄懂!

一. 為什么使用spring cloud alibaba 很多人可能會問&#xff0c;有了spring cloud這個微服務的框架&#xff0c;為什么又要使用spring cloud alibaba這個框架了&#xff1f; 最重要的原因在于spring cloud中的幾乎所有的組件都使用Netflix公司的產品&#xff0c;然后在其基礎…

001 出錯處理

函數strerror() 1.1 函數原型 char *strerror(int errnum)分析&#xff1a;此函數將errnum&#xff08;它通常就說errno值&#xff09;映射為一個出錯信息字符串&#xff0c;并返回錯誤此字符串 。 1.2 代碼清單 #include <stdio.h> #include <string.h> #inclu…

java接口作用和好處,持續更新大廠面試筆試題

業界常用的服務注冊與發現組件對比 了解服務注冊與發現的基本原理后&#xff0c;如果你要在項目中使用服務注冊與發現組件&#xff0c;當面對眾多的開源組件該如何進行技術選型&#xff1f; 在互聯網公司里&#xff0c;有研發實力的大公司一般會選擇自研或者基于開源組件進行…

第七章 進程環境 | 001 命令形參、gcc與g++的使用

命令形參 命令行參數是使用main()函數參數來處理的&#xff0c;其中&#xff0c;argc是指傳入參數的個數&#xff0c;argv[]是一個指針數組&#xff0c;指向傳遞給程序的每個參數。 應當指出的是&#xff0c; argv[0]存儲程序的名稱&#xff0c;argv[1]是一個指向第一個命令行…

java接口實例化對象和類實例化對象,附贈課程+題庫

面試整體事項 簡歷要準備好&#xff0c;聯系方式一定要正確清晰醒目&#xff0c;項目經歷按照時間倒序闡述&#xff0c;注意描述自己在項目中承擔的職責&#xff0c;簡歷的模板盡量選擇簡潔的&#xff0c;畢竟程序員大部分還是喜歡簡單明了的。推薦boss直聘&#xff0c;我覺得…