IT面試筆試題目及答案_第1頁
IT面試筆試題目及答案_第2頁
IT面試筆試題目及答案_第3頁
IT面試筆試題目及答案_第4頁
IT面試筆試題目及答案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

經(jīng)典word整理文檔,僅參考,雙擊此處可刪除頁眉頁腳。本資料屬于網(wǎng)絡整理,如有侵權,請聯(lián)系刪除,謝謝!IT求職面試時,面試官一般都會問你一些問題,也可能是通過問卷的形式提問,怎么回答才是最好的呢?這里給大家分享一些2020IT面試筆試題目,希望對大家有所幫助。RabbitMQ面試題及答案一、什么是RabbitMQ?采用AMQP高級消息隊列協(xié)議的一種消息隊列技術,最大的特點就是消費并不需要確保提供方存在,實現(xiàn)了服務之間的高度解耦。二、為什么要使用RabbitMQ?①在分布式系統(tǒng)下具備異步,削峰,負載均衡等一系列高級功能;②擁有持久化的機制,進程消息,隊列中的信息也可以保存下來。③實現(xiàn)消費者和生產(chǎn)者之間的解耦。④對于高并發(fā)場景下,利用消息隊列可以使得同步訪問變?yōu)榇性L問達到一定量的限流,利于數(shù)據(jù)庫的操作。⑤可以使用消息隊列達到異步下單的效果,排隊中,后臺進行邏輯下單。三、RabbitMQ的使用場景有哪些?①跨系統(tǒng)的異步通信,所有需要異步交互的地方都可以使用消息隊列。就像我們除了打電話(同步)以外,還需要發(fā)短信,發(fā)電子郵件(異步)的通訊方式。②多個應用之間的耦合,由于消息是平臺無關和語言無關的,而且語義上也不再是函數(shù)調(diào)用,因此更適合作為多個應用之間的松耦合的接口。基于消息隊列的耦合,不需要發(fā)送方和接收方同時在線。在企業(yè)應用集成(EAI)中,文件傳輸,共享數(shù)據(jù)庫,消息隊列,遠程過程調(diào)用都可以作為集成的方法。③應用內(nèi)的同步變異步,比如訂單處理,就可以由前端應用將訂單信息放到隊列,后端應用從隊列里依次獲得消息處理,高峰時的大量訂單可以積壓在隊列里慢慢處理掉。由于同步通常意味著阻塞,而大量線程的阻塞會降低計算機的性能。④消息驅動的架構(EDA),系統(tǒng)分解為消息隊列,和消息制造者和消息消費者,一個處理流程可以根據(jù)需要拆成多個階段(Stage),階段之間用隊列連接起來,前一個階段處理的結果放入隊列,后一個階段從隊列中獲取消息繼續(xù)處理。⑤應用需要更靈活的耦合方式,如發(fā)布訂閱,比如可以指定路由規(guī)則。⑥跨局域網(wǎng),甚至跨城市的通訊(CDN行業(yè)),比如北京機房與廣州機房的應用程序的通信。四、RabbitMQ有哪些重要的角色?RabbitMQ中重要的角色有:生產(chǎn)者、消費者和代理:①生產(chǎn)者:消息的創(chuàng)建者,負責創(chuàng)建和推送數(shù)據(jù)到消息服務器;②消費者:消息的接收方,用于處理數(shù)據(jù)和確認消息;③代理:就是RabbitMQ本身,用于扮演“快遞”的角色,本身不生產(chǎn)消息,只是扮演“快遞”的角色。五、如何確保消息正確地發(fā)送至RabbitMQ?如何確保消息接收方消費了消息?1、發(fā)送方確認模式①將信道設置成confirm模式(發(fā)送方確認模式),則所有在信道上發(fā)布的消息都會被指派一個唯一的ID。②一旦消息被投遞到目的隊列后,或者消息被寫入磁盤后(可持久化的消息),信道會發(fā)送一個確認給生產(chǎn)者(包含消息唯一ID)。③如果RabbitMQ發(fā)生內(nèi)部錯誤從而導致消息丟失,會發(fā)送一條nack(notacknowledged,未確認)消息。④發(fā)送方確認模式是異步的,生產(chǎn)者應用程序在等待確認的同時,可以繼續(xù)發(fā)送消息。當確認消息到達生產(chǎn)者應用程序,生產(chǎn)者應用程序的回調(diào)方法就會被觸發(fā)來處理確認消息。2、接收方確認機制①消費者接收每一條消息后都必須進行確認(消息接收和消息確認是兩個不同操作)。只有消費者確認了消息,RabbitMQ才能安全地把消息從隊列中刪除。②這里并沒有用到超時機制,RabbitMQ僅通過Consumer的連接中斷來確認是否需要重新發(fā)送消息。也就是說,只要連接不中斷,RabbitMQ給了Consumer足夠長的時間來處理消息。保證數(shù)據(jù)的最終一致性。3、下面羅列幾種特殊情況①如果消費者接收到消息,在確認之前斷開了連接或取消訂閱,RabbitMQ會認為消息沒有被分發(fā),然后重新分發(fā)給下一個訂閱的消費者。(可能存在消息重復消費的隱患,需要去重)②如果消費者接收到消息卻沒有確認消息,連接也未斷開,則RabbitMQ認為該消費者繁忙,將不會給該消費者分發(fā)更多的消息。關于Tomcat的面試題一、什么是Tomcat?Tomcat簡單的說就是一個運行JAVA的網(wǎng)絡服務器,底層是Socket的一個程序,它也是JSP和Serlvet的一個容器。二、tomcat結構目錄有哪些?①bin:啟動和關閉tomcat的bat文件。②conf:配置文件。③server.xml該文件用于配置server相關的信息,比如tomcat啟動的端口號,配置主機(Host)。④web.xml文件配置與web應用(web應用相當于一個web站點)⑤tomcat-user.xml配置用戶名密碼和相關權限。⑥lib:該目錄放置運行tomcat運行需要的jar包。⑦logs:存放日志,當我們需要查看日志的時候,可以查詢信息。⑧webapps:放置我們的web應用。⑨work工作目錄:該目錄用于存放jsp被訪問后生成對應的server文件和.class文件。三、如何配置Tomcat虛擬目錄?1、在server.xml中的節(jié)點下添加如下代碼。path表示的是訪問時輸入的web項目名,docBase表示的是站點目錄的絕對路徑。2、進入到confCatalinalocalhost文件下,創(chuàng)建一個xml文件,該文件的名字就是站點的名字。四、Tomcat體系結構是怎樣的?瀏覽器->tomcatserver->service->connector->engine(引擎)->host(主機)->web應用。五、Web請求在Tomcat請求中的請求流程是怎么樣的?①瀏覽器輸入URL地址;②查詢本機hosts文件尋找IP;③查詢DNS服務器尋找IP;④向該IP發(fā)送Http請求;⑤Tomcat容器解析主機名;⑥Tomcat容器解析Web應用;⑦Tomcat容器解析資源名稱;⑧Tomcat容器獲取資源;⑨Tomcat響應瀏覽器。六、如何在tomcat集群中實現(xiàn)Session共享Apache集群實現(xiàn)Tomcat的Session共享配置其實很簡單,在Tomcat自帶的文檔中有詳細的說明(/docs/cluster-howto.html),只不過是英語的,所以聯(lián)合下面根據(jù)說下怎么配置吧:1、既然是集群肯定要多準備幾個Tomcat來模擬,比如分別為Tomcat01、Tomcat02、Tomcat03。如果各Tomcat程序放在不同的機器上,那么就不會有端口的沖用造成的沖突。打開conf文件夾中的server.xml文件,需要修改的端口有:以上port需要修改,至于修改成什么樣子,看你自己了,只要不出現(xiàn)端口沖突就可以了,要保證各個Tomcat實例間沒有端口沖突。關于Zookeeper的面試題一、談下你對ZookeeperZooKeeper是一個分布式的,開放源碼的分布式應用程序協(xié)調(diào)服配置維護、域名服務、分布式同步、組服務等。ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。二、Zookeeper都有哪些功能?1.集群管理:監(jiān)控節(jié)點存活狀態(tài)、運行請求等;2.主節(jié)點選舉:主節(jié)點掛掉了之后可以從備用的節(jié)點開始新一輪選主,主節(jié)點選舉說的就是這個選舉的過程,使用Zookeeper可以協(xié)助完成這個過程;3.分布式鎖:Zookeeper提供兩種鎖:獨占鎖、共享鎖。獨占鎖即一次只能有一個線程使用資源,共享鎖是讀鎖共享,讀寫互斥,即可以有多線線程同時讀同一個資源,如果要使用寫鎖也只能有一個線程使用。Zookeeper可以對分布式鎖進行控制。4.命名服務:在分布式系統(tǒng)中,通過使用命名服務,客戶端應用能夠根據(jù)指定名字來獲取資源或服務的地址,提供者等信息。三、談下你對ZAB協(xié)議的了解?ZAB協(xié)議是為分布式協(xié)調(diào)服務Zookeeper專門設計的一種支持崩協(xié)議包括兩種基本的模式:崩潰恢復和消息廣播。當整個Zookeeper集群剛剛啟動或者Leader服務器宕機、重啟或者網(wǎng)絡故障導致不存在過半的服務器與Leader服務器保持正常通信時,所有服務器進入崩潰恢復模式,首先選舉產(chǎn)生新的Leader服務器,然后集群中Follower服務器開始與新的Leader服務器進行數(shù)據(jù)同步。當集群中超過半數(shù)機器與該Leader服務器完成數(shù)據(jù)同步之后,退出恢復模式進入消息廣播模式,Leader服務器開始接收客戶端的事務請求生成事物提案來進行事務請求處理。四、Zookeeper怎么保證主從節(jié)點的狀態(tài)同步?Zookeeper的核心是原子廣播機制,這個機制保證了各個server之間的同步。實現(xiàn)這個機制的協(xié)議叫做Zab協(xié)議有兩種模式,它們分別是恢復模式和廣播模式。1.恢復模式當服務啟動或者在領導者崩潰后,Zab就進入了恢復模式,當領導者被選舉出來,且大多數(shù)server完成了和leader的狀態(tài)同步以后,leader和server具有相同的系統(tǒng)狀態(tài)。2.廣播模式一旦leader已經(jīng)和多數(shù)的follower進行了狀態(tài)同步后,它就可以開始廣播消息了,即進入廣播狀態(tài)。這時候當一個server加入ZooKeeper服務中,它會在恢復模式下啟動,發(fā)現(xiàn)leader,并和leader進行狀態(tài)同步。待到同步結束,它也參與消息廣播。ZooKeeper服務一直維持在Broadcast狀態(tài),直到leader崩潰了或者leader失去了大部分的followers支持。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論