<menuitem id="r3jhr"></menuitem><noscript id="r3jhr"><progress id="r3jhr"><code id="r3jhr"></code></progress></noscript>

      計算機方向的面試題目有哪些

      時間:2021-07-29 12:42:17 試題 我要投稿

      計算機方向的面試題目有哪些

        在學習、工作生活中,我們很多時候都不得不用到試題,試題是用于考試的題目,要求按照標準回答。相信很多朋友都需要一份能切實有效地幫助到自己的試題吧?以下是小編為大家整理的計算機方向的面試題目有哪些,歡迎大家借鑒與參考,希望對大家有所幫助。

      計算機方向的面試題目有哪些

      計算機方向的面試題目有哪些1

        1、什么是ActiveMQ?

        activeMQ是一種開源的,實現了JMS1.1規范的,面向消息(MOM)的中間件,為應用程序提供高效的、可擴展的、穩定的和安全的企業級消息通信。

        2、Activemq的瓶頸值

        根據網上一般評測文檔上來看,每秒的消息吞吐在20xx以上,acticemq也可以集群化部署,也是使用zookeeper來搭建。

        3、ActiveMQ服務器宕機怎么辦?

        這得從ActiveMQ的儲存機制說起。在通常的情況下,非持久化消息是存儲在內存中的,持久化消息是存儲在文件中的,它們的最大限制在配置文件的節點中配置。

        但是,在非持久化消息堆積到一定程度,內存告急的時候,ActiveMQ會將內存中的非持久化消息寫入臨時文件中,以騰出內存。雖然都保存到了文件里,但它和持久化消息的區別是,重啟后持久化消息會從文件中恢復,非持久化的臨時文件會直接刪除。

        那如果文件增大到達了配置中的最大限制的時候會發生什么?我做了以下實驗:

        設置2G左右的持久化文件限制,大量生產持久化消息直到文件達到最大限制,此時生產者阻塞,但消費者可正常連接并消費消息,等消息消費掉一部分,文件刪除又騰出空間之后,生產者又可繼續發送消息,服務自動恢復正常。

        設置2G左右的臨時文件限制,大量生產非持久化消息并寫入臨時文件,在達到最大限制時,生產者阻塞,消費者可正常連接但不能消費消息,或者原本慢速消費的消費者,消費突然停止。整個系統可連接,但是無法提供服務,就這樣掛了。

        具體原因不詳,解決方案:盡量不要用非持久化消息,非要用的話,將臨時文件限制盡可能的調大。

        4、AcitveMQ的作用、原理?(生產者、消費者、p2p、訂閱實現流程)

        Activemq的作用就是系統之間進行通信。當然可以使用其他方式進行系統間通信,如果使用Activemq的話可以對系統之間的調用進行解耦,實現系統間的異步通信。原理就是生產者生產消息,把消息發送給activemq。Activemq接收到消息,然后查看有多少個消費者,然后把消息轉發給消費者,此過程中生產者無需參與。消費者接收到消息后做相應的處理和生產者沒有任何關系

        5、activemq在項目中如何應用的

        Activemq在項目中主要是完成系統之間通信,并且將系統之間的調用進行解耦。例如在添加、修改商品信息后,需要將商品信息同步到索引庫、同步緩存中的數據以及生成靜態頁面一系列操作。

        在此場景下就可以使用activemq。一旦后臺對商品信息進行修改后,就向activemq發送一條消息,然后通過activemq將消息發送給消息的消費端,消費端接收到消息可以進行相應的業務處理。

        7、rabbitmq如何實現集群高可用?

        集群是保證服務可靠性的一種方式,同時可以通過水平擴展以提升消息吞吐能力。RabbitMQ是用分布式程序設計語言erlang開發的,所以天生就支持集群。接下來,將介紹RabbitMQ分布式消息處理方式、集群模式、節點類型,并動手搭建一個高可用集群環境,最后通過java程序來驗證集群的高可用性。

        RabbitMQ分布式的消息處理方式有以下三種:

       。1)Clustering:不支持跨網段,各節點需運行同版本的Erlang和RabbitMQ,應用于同網段局域網。

        (2)Federation:允許單臺服務器上的Exchange或Queue接收發布到另一臺服務器上Exchange或Queue的消息,應用于廣域網。

        (3)Shovel:與Federation類似,但工作在更低層次。

        RabbitMQ對網絡延遲很敏感,在LAN環境建議使用clustering方式;在WAN環境中,則使用Federation或Shovel。我們平時說的RabbitMQ集群,說的就是clustering方式,它是RabbitMQ內嵌的一種消息處理方式,而Federation或Shovel則是以plugin形式存在。

        8、丟消息怎么辦?

        這得從java的java.net.SocketException異常說起。簡單點說就是當網絡發送方發送一堆數據,然后調用close關閉連接之后。這些發送的數據都在接收者的緩存里,接收者如果調用read方法仍舊能從緩存中讀取這些數據,盡管對方已經關閉了連接。

        但是當接收者嘗試發送數據時,由于此時連接已關閉,所以會發生異常,這個很好理解。不過需要注意的是,當發生SocketException后,原本緩存區中數據也作廢了,此時接收者再次調用read方法去讀取緩存中的數據,就會報Software caused connection abort:recv failed錯誤。

        通過抓包得知,ActiveMQ會每隔10秒發送一個心跳包,這個心跳包是服務器發送給客戶端的,用來判斷客戶端死沒死。如果你看過上面第一條,就會知道非持久化消息堆積到一定程度會寫到文件里,這個寫的`過程會阻塞所有動作,而且會持續20到30秒,并且隨著內存的增大而增大。

        當客戶端發完消息調用connection.close()時,會期待服務器對于關閉連接的回答,如果超過15秒沒回答就直接調用socket層的close關閉tcp連接了。這時客戶端發出的消息其實還在服務器的緩存里等待處理,不過由于服務器心跳包的設置,導致發生了java.net.SocketException異常,把緩存里的數據作廢了,沒處理的消息全部丟失。

        解決方案:用持久化消息,或者非持久化消息及時處理不要堆積,或者啟動事務,啟動事務后,commit()方法會負責任的等待服務器的返回,也就不會關閉連接導致消息丟失了。

      計算機方向的面試題目有哪些2

        一、什么是Tomcat?

        Tomcat簡單的說就是一個運行JAVA的網絡服務器,底層是Socket的一個程序,它也是JSP和Serlvet的一個容器。

        二、tomcat結構目錄有哪些?

       、賐in:啟動和關閉tomcat的bat文件。

        ②conf:配置文件。

       、踫erver.xml該文件用于配置server相關的信息,比如tomcat啟動的端口號,配置主機(Host)。

       、躻eb.xml文件配置與web應用(web應用相當于一個web站點)

        ⑤tomcat—user。xml配置用戶名密碼和相關權限。

        ⑥lib:該目錄放置運行tomcat運行需要的jar包。

       、遧ogs:存放日志,當我們需要查看日志的時候,可以查詢信息。

        ⑧webapps:放置我們的web應用。

        ⑨work工作目錄:該目錄用于存放jsp被訪問后生成對應的server文件和.class文件。

        三、如何配置Tomcat虛擬目錄?

        1、在server.xml中的節點下添加如下代碼。path表示的是訪問時輸入的web項目名,docBase表示的是站點目錄的絕對路徑。

        2、進入到confCatalinalocalhost文件下,創建一個xml文件,該文件的名字就是站點的名字。

        四、Tomcat體系結構是怎樣的?

        瀏覽器—>tomcat server—>service—>connector—>engine(引擎)—>host(主機)—>web應用。

        五、Web請求在Tomcat請求中的請求流程是怎么樣的?

       、贋g覽器輸入URL地址;

       、诓樵儽緳Chosts文件尋找IP;

       、鄄樵僁NS服務器尋找IP;

       、芟蛟揑P發送Http請求;

        ⑤Tomcat容器解析主機名;

       、轙omcat容器解析Web應用;

       、逿omcat容器解析資源名稱;

        ⑧Tomcat容器獲取資源;

       、酺omcat響應瀏覽器。

        六、如何在tomcat集群中實現Session共享

        Apache集群實現Tomcat的Session共享配置其實很簡單,在Tomcat自帶的文檔中有詳細的說明(/docs/cluster—howto.html),只不過是英語的,所以聯合下面根據說下怎么配置吧:

        1、既然是集群肯定要多準備幾個Tomcat來模擬,比如分別為Tomcat01、Tomcat02、Tomcat03。

        如果各Tomcat程序放在不同的機器上,那么就不會有端口的沖突。如果是放在同一臺機器上的話,那就簡單改幾個端口,防止端口占用造成的沖突。打開conf文件夾中的server.xml文件,需要修改的端口有:

        1、

        2、

        3、

        以上port需要修改,至于修改成什么樣子,看你自己了,只要不出現端口沖突就可以了,要保證各個Tomcat實例間沒有端口沖突。

        七、tomcat有哪些Connector?

        Tomcat的Web服務器連接器支持兩種協議:AJP和HTTP,它們均定義了以二進制格式在Web服務器和Tomcat之間進行數據傳輸,并提供相應的控制命令。

        AJP(Apache JServ Protocol)協議:目前正在使用的AJP協議的版本是通過JK和JK2連接器提供支持的AJP13,它基于二進制的格式在Web服務器和Tomcat之間傳輸數據,而此前的版本AJP10和AJP11則使用文本格式傳輸數據。

        HTTP協議:誠如其名稱所表示,其是使用HTTP或HTTPS協議在Web服務器和Tomcat之間建立通信,此時,Tomcat就是一個完全功能的HTTP服務器,它需要監聽在某端口上以接收來自于商前服務器的請求。

        八、tomcat的Valve的作用是什么?

        Valve類似于過濾器,它可以工作于Engine和Host/Context之間、Host和Context之間以及Context和Web應用程序的某資源之間。一個容器內可以建立多個Valve,而且Valve定義的次序也決定了它們生效的次序。

        九、Webserver和Application Server的區別是什么?

        最大區別,WebServer一般僅僅指Web(如servlet,jsp)的應用服務器,ApplicationServer不僅可以是Web,還可以是Ejb等其它的應用服務器。

        web server可以是application server的一部分,也可以是單獨存在。

        十、Tomcat的缺省端口是多少,怎么修改?

        1)找到Tomcat目錄下的conf文件夾;

        2)進入conf文件夾里面找到server.xml文件;

        3)打開server.xml文件;

        4)在server.xml文件里面找到下列信息;

        port=“8080”改成你想要的端口

        十一、Tomcat有幾種部署方式?

        1)直接把Web項目放在webapps下,Tomcat會自動將其部署

        2)在server.xml文件上配置節點,設置相關的屬性即可

        3)通過Catalina來進行配置:進入到confCatalinalocalhost文件下,創建一個xml文件,該文件的名字就是站點的名字。編寫XML的方式來進行設置。

        十二、tomcat容器是如何創建servlet類實例?用到了什么原理?

        當容器啟動時,會讀取在webapps目錄下所有的web應用中的web.xml文件,然后對xml文件進行解析,并讀取servlet注冊信息。然后,將每個應用中注冊的servlet類都進行加載,并通過反射的方式實例化。(有時候也是在第一次請求時實例化)在servlet注冊時加上如果為正數,則在一開始就實例化,如果不寫或為負數,則第一次請求實例化。

        十三、Tomcat頂層架構小結

        (1)Tomcat中只有一個Server,一個Server可以有多個Service,一個Service可以有多個Connector和一個Container;

        (2)Server掌管著整個Tomcat的生死大權;

       。4)Service是對外提供服務的;

       。5)Connector用于接受請求并將請求封裝成Request和Response來具體處理;

       。6)Container用于封裝和管理Servlet,以及具體處理request請求。

      計算機方向的面試題目有哪些3

        一、什么是RabbitMQ?

        采用AMQP高級消息隊列協議的一種消息隊列技術,最大的特點就是消費并不需要確保提供方存在,實現了服務之間的高度解耦。

        二、為什么要使用RabbitMQ?

       、僭诜植际较到y下具備異步,削峰,負載均衡等一系列高級功能。

       、趽碛谐志没臋C制,進程消息,隊列中的信息也可以保存下來。

        ③實現消費者和生產者之間的解耦。

       、軐τ诟卟l場景下,利用消息隊列可以使得同步訪問變為串行訪問達到一定量的限流,利于數據庫的操作。

        ⑤可以使用消息隊列達到異步下單的效果,排隊中,后臺進行邏輯下單。

        三、RabbitMQ的使用場景有哪些?

       、倏缦到y的異步通信,所有需要異步交互的地方都可以使用消息隊列。就像我們除了打電話(同步)以外,還需要發短信,發電子郵件(異步)的通訊方式。

        ②多個應用之間的耦合,由于消息是平臺無關和語言無關的,而且語義上也不再是函數調用,因此更適合作為多個應用之間的松耦合的接口;谙㈥犃械鸟詈,不需要發送方和接收方同時在線。在企業應用集成(EAI)中,文件傳輸,共享數據庫,消息隊列,遠程過程調用都可以作為集成的方法。

       、蹜脙鹊耐阶儺惒剑热缬唵翁幚,就可以由前端應用將訂單信息放到隊列,后端應用從隊列里依次獲得消息處理,高峰時的大量訂單可以積壓在隊列里慢慢處理掉。由于同步通常意味著阻塞,而大量線程的阻塞會降低計算機的性能。

       、芟Ⅱ寗拥募軜嫞‥DA),系統分解為消息隊列,和消息制造者和消息消費者,一個處理流程可以根據需要拆成多個階段(Stage),階段之間用隊列連接起來,前一個階段處理的結果放入隊列,后一個階段從隊列中獲取消息繼續處理。

       、輵眯枰`活的耦合方式,如發布訂閱,比如可以指定路由規則。

       、蘅缇钟蚓W,甚至跨城市的通訊(CDN行業),比如北京機房與廣州機房的應用程序的通信。

        四、RabbitMQ有哪些重要的角色?

        RabbitMQ中重要的角色有:生產者、消費者和代理:

       、偕a者:消息的創建者,負責創建和推送數據到消息服務器;

       、谙M者:消息的接收方,用于處理數據和確認消息;

       、鄞恚壕褪荝abbitMQ本身,用于扮演“快遞”的角色,本身不生產消息,只是扮演“快遞”的角色。

        五、如何確保消息正確地發送至RabbitMQ?如何確保消息接收方消費了消息?

        1、發送方確認模式

        ①將信道設置成confirm模式(發送方確認模式),則所有在信道上發布的消息都會被指派一個唯一的ID。

        ②一旦消息被投遞到目的隊列后,或者消息被寫入磁盤后(可持久化的消息),信道會發送一個確認給生產者(包含消息唯一ID)。

        ③如果RabbitMQ發生內部錯誤從而導致消息丟失,會發送一條nack(notacknowledged,未確認)消息。

        ④發送方確認模式是異步的,生產者應用程序在等待確認的同時,可以繼續發送消息。當確認消息到達生產者應用程序,生產者應用程序的回調方法就會被觸發來處理確認消息。

        2、接收方確認機制

       、傧M者接收每一條消息后都必須進行確認(消息接收和消息確認是兩個不同操作)。只有消費者確認了消息,RabbitMQ才能安全地把消息從隊列中刪除。

       、谶@里并沒有用到超時機制,RabbitMQ僅通過Consumer的連接中斷來確認是否需要重新發送消息。也就是說,只要連接不中斷,RabbitMQ給了Consumer足夠長的時間來處理消息。保證數據的最終一致性。

        3、下面羅列幾種特殊情況

       、偃绻M者接收到消息,在確認之前斷開了連接或取消訂閱,RabbitMQ會認為消息沒有被分發,然后重新分發給下一個訂閱的消費者。(可能存在消息重復消費的隱患,需要去重)

        ②如果消費者接收到消息卻沒有確認消息,連接也未斷開,則RabbitMQ認為該消費者繁忙,將不會給該消費者分發更多的消息。

        六、RabbitMQ怎么避免消息丟失?

        ①消息持久化;

       、贏CK確認機制;

       、墼O置集群鏡像模式;

       、芟⒀a償機制。

        七、要保證消息持久化成功的條件有哪些?

       、俾暶麝犃斜仨氃O置持久化durable設置為true。

       、谙⑼扑屯哆f模式必須設置持久化,deliveryMode設置為2(持久)。

        ③消息已經到達持久化交換器。

       、芟⒁呀浀竭_持久化隊列。

        以上四個條件都滿足才能保證消息持久化成功。

        八、RabbitMQ持久化有什么缺點?

        持久化的缺地就是降低了服務器的吞吐量,因為使用的是磁盤而非內存存儲,從而降低了吞吐量?杀M量使用ssd硬盤來緩解吞吐量的問題。

        九、RabbitMQ有幾種廣播類型?

        三種廣播模式:

        ①fanout:所有bind到此exchange的queue都可以接收消息(純廣播,綁定到RabbitMQ的接受者都能收到消息);

       、赿irect:通過routingKey和exchange決定的那個唯一的queue可以接收消息;

        ③topic:所有符合routingKey(此時可以是一個表達式)的routingKey所bind的queue可以接收消息;

        十、RabbitMQ中vhost的作用是什么?

        vhost可以理解為虛擬broker,即mini—RabbitMQ server。其內部均含有獨立的queue、exchange和binding等,但最最重要的是,其擁有獨立的權限系統,可以做到vhost范圍的用戶控制。當然,從RabbitMQ的全局角度,vhost可以作為不同權限隔離的手段(一個典型的例子就是不同的應用可以跑在不同的vhost中)。

      【計算機方向的面試題目有哪些】相關文章:

      周記的好題目有哪些適合寫什么題目10-12

      財務管理專業就業方向有哪些10-12

      文秘面試有哪些技巧細節09-19

      電子競技專業就業方向有哪些10-12

      高薪總經理招聘筆試題目有哪些08-18

      單招面試有哪些技巧單招面試要注意哪些細節10-12

      食品營養與健康專業就業方向有哪些202110-12

      汽車電子技術專業介紹就業方向有哪些10-12

      計算機考研專業有哪些03-18

      久久亚洲中文字幕精品一区四_久久亚洲精品无码av大香_天天爽夜夜爽性能视频_国产精品福利自产拍在线观看
      <menuitem id="r3jhr"></menuitem><noscript id="r3jhr"><progress id="r3jhr"><code id="r3jhr"></code></progress></noscript>
        最新日本在线观看网站 | 久久精品免费看 | 在线一区二区三区免费视频 | 中文字幕亚洲乱码专区 | 亚洲AV第二区国产精品 | 色综合天天狠天天透天天伊人 |