Java面試題(每天10題)-------連載(45)

Dubbo篇

1、Dubbo的服務調用流程

2、Dubbo支持那種協議,每種協議的應用場景,優缺點?

  • dubbo: 單一長連接和 NIO 異步通訊,適合大并發小數據量的服務調用,以及消費者遠大于提供者。傳輸協議 TCP,異步,Hessian 序列化;
  • rmi: 采用 JDK 標準的 rmi 協議實現,傳輸參數和返回參數對象需要實現 Serializable 接口,使用 java 標準序列化機制,使用阻塞式短連接,傳輸數據包大小混合,消費者和提供者個數差不多,可傳文件,傳輸協議 TCP。 多個短連接,TCP 協議傳輸,同步傳輸,適用常規的遠程服務調用和 rmi 互操作。在依賴低版本的 Common-Collections包,java 序列化存在安全漏洞;
  • webservice: 基于 WebService 的遠程調用協議,集成 CXF 實現,提供和原生 WebService 的互操作。多個短連接,基于 HTTP 傳輸,同步傳輸,適用系統集成和跨語言調用;
  • http: 基于 Http 表單提交的遠程調用協議,使用 Spring 的HttpInvoke 實現。多個短連接,傳輸協議 HTTP,傳入參數大小混合,提供者個數多于消費者,需要給應用程序和瀏覽器 JS 調用;
  • hessian: 集成 Hessian 服務,基于 HTTP 通訊,采用 Servlet 暴露服務,Dubbo 內嵌 Jetty 作為服務器時默認實現,提供與 Hession 服務互操作。多個短連接,同步 HTTP 傳輸,Hessian 序列化,傳入參數較大,提供者大于消費者,提供者壓力較大,可傳文件;
  • memcache: 基于 memcached 實現的 RPC 協議
  • redis: 基于 redis 實現的 RPC 協議

3、Dubbo推薦用什么協議?

默認使用 dubbo 協議

4、Dubbo中有哪些注冊中心?

  • Multicast 注冊中心: Multicast 注冊中心不需要任何中心節點,只要廣播地址,就能進行服務注冊和發現。基于網絡中組播傳輸實現;
  • Zookeeper 注冊中心: 基于分布式協調系統 Zookeeper 實現,采用Zookeeper 的 watch 機制實現數據變更;
  • redis 注冊中心: 基于 redis 實現,采用 key/Map 存儲,住 key 存儲服務名和類型,Map 中 key 存儲服務 URL,value 服務過期時間。基于 redis 的發布/訂閱模式通知數據變更;
  • Simple 注冊中心
  • Dubbo 默認采用 Zookeeper

5、為什么需要服務治理?

  • 過多的服務 URL 配置困難
  • 負載均衡分配節點壓力過大的情況下也需要部署集群?
  • 服務依賴混亂,啟動順序不清晰
  • 過多服務導致性能指標分析難度較大,需要監控

6、Dubbo的注冊中心集群掛掉,發布者和訂閱者之間還能通信嗎?

可以的,啟動 dubbo 時,消費者會從 zookeeper 拉取注冊的生產者的地址接口等數據,緩存在本地。每次調用時,按照本地存儲的地址進行調用。

7、Dubbo與Spring的關系

Dubbo 采用全 Spring 配置方式,透明化接入應用,對應用沒有任何API 侵入,只需用 Spring 加載 Dubbo 的配置即可,Dubbo 基于Spring 的 Schema 擴展進行加載。

8、Dubbo使用的是什么通信框架?

默認使用 NIO Netty 框架

9、Dubbo集群提供了那些負載均衡策略?

  • Random LoadBalance: 隨機選取提供者策略,有利于動態調整提供者權重。截面碰撞率高,調用次數越多,分布越均勻;
  • RoundRobin LoadBalance: 輪循選取提供者策略,平均分布,但是存在請求累積的問題;
  • LeastActive LoadBalance: 最少活躍調用策略,解決慢提供者接收更少的請求;
  • ConstantHash LoadBalance: 一致性 Hash 策略,使相同參數請求總是發到同一提供者,一臺機器宕機,可以基于虛擬節點,分攤至其他提供者,避免引起提供者的劇烈變動;
  • 缺省時為 Random 隨機調用

10、Dubbo的集群容錯方案有哪些?

  • Failover Cluster?失敗自動切換,當出現失敗,重試其它服務器。通常用于讀操作,但重試會帶來更長延遲。
  • Failfast Cluster 快速失敗,只發起一次調用,失敗立即報錯。通常用于非冪等性的寫操作,比如新增記錄。
  • Failsafe Cluster 失敗安全,出現異常時,直接忽略。通常用于寫入審計日志等操作。
  • Failback Cluster 失敗自動恢復,后臺記錄失敗請求,定時重發。通常用于消息通知操作。
  • Forking Cluster?并行調用多個服務器,只要一個成功即返回。通常用于實時性要求較高的讀操作,但需要浪費更多服務資源。可通過 forks="2" 來設置最大并行數。
  • Broadcast Cluster 廣播調用所有提供者,逐個調用,任意一臺報錯則報錯 。通常用于通知所有提供者更新緩存或日志等本地資源信息。

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

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

相關文章

Proteus仿真--射擊小游戲仿真設計

本文介紹基于proteus射擊小游戲仿真設計(完整仿真源文件及代碼見文末鏈接) 仿真圖如下 K1-K4為4個按鍵,用于上移、下移、確認等,模擬單機游戲 仿真運行視頻 Proteus仿真--射擊小游戲仿真設計 附完整Proteus仿真資料代碼資料 …

ArcGIS界面顯示分辨率調整

因為電腦顯示分辨率的問題呢,ArcGIS的界面顯示會字體顯示不合適,出現模糊情況,這時候只需要做個簡單的操作設置一下便可以解決! 1、右鍵ArcMap的快捷啟動方式。 2、對應選擇兼容性——>更高DPI設置——>勾選替代DPI縮放行為…

自然場景圖像中的文本檢測綜述

摘 要 本文對自然場景文本檢測問題及其方法的研究進展進行了綜述. 首先, 論述了自然場景文本的特點、自然場景文本檢測技術的研究背景、現狀以及主要技術路線. 其次, 從傳統文本檢測以及深度學習文本檢測的視角出發, 梳理、分析并比較了各類自然場景文本檢測方法的優缺點, 并介…

體系化學習運籌學基礎算法的實踐和總結

文章目錄 引言目標設計目標實踐文章匯總經驗總結一則預告 引言 眨眼間已經12月了,眼看著2023年馬上要過完了。 女朋友最近總說,工作以后感覺時間過的好快。事實上,我也是這么認為的。年紀越大,越會擔心35歲危機的降臨。所以&…

Xubuntu16.04系統中使用EDIMAX EW-7822UAC無線網卡開啟5G自發AP

目錄 1.關于 EDIMAX EW-7822UAC2.驅動安裝3.查看無線網卡信息3.通過create_ap配置5G自發AP 1.關于 EDIMAX EW-7822UAC 官網介紹 https://www.edimax.com/edimax/merchandise/merchandise_detail/data/edimax/global/wireless_adapters_ac1200_dual-band/ew-7822uac/ 詳細參數…

Python開發運維:Python項目發布到K8S集群

目錄 一、實驗 1.Python項目發布到K8S集群 一、實驗 1.Python項目發布到K8S集群 (1)獲取應用程序代碼 #把hello-python.tar.gz壓縮包上傳到k8s控制節點master1的root下,手動解壓 tar zxvf hello-python.tar.gz (2&#xff0…

【Linux】進程周邊001之進程概念

👀樊梓慕:個人主頁 🎥個人專欄:《C語言》《數據結構》《藍橋杯試題》《LeetCode刷題筆記》《實訓項目》《C》《Linux》 🌝每一個不曾起舞的日子,都是對生命的辜負 目錄 前言 1.基本概念 2.描述進程-PCB…

LeetCode5.最長回文子串

昨天和之前打比賽的隊友聊天,他說他面百度面到這道算法題,然后他用暴力法解的,面試官讓他優化他沒優化出來,這道題我之前沒寫過,我就想看看我能不能用效率高一點的方法把它做出來,我一開始就在想用遞歸或者…

springboot(ssm滁州市特產銷售系統 特產商城系統Java系統

springboot(ssm滁州市特產銷售系統 特產商城系統Java系統 開發語言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服務器:tomcat 數據庫:mysql 5.7(或8.0) …

解決錯誤:sudo debtap -u curl: (22) The requested URL returned error: 404

具體錯誤 $ sudo debtap -u > Synchronizing pkgfile database... :: Updating 2 repos...core is up to dateextra is up to date > Synchronizing debtap database...% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload …

設計CPU功能的數字電路

實驗目的(1)熟悉Multisim 電路仿真軟件的操作界面和功能; (2)掌握邏輯電路綜合設計,并采用仿真軟件進行仿真。 實驗內容1.試設計一個簡易CPU功能的數字電路,實驗至少要求采用4個74HC/HCT194作為4個存儲單元(可以預先對存儲單元存儲數據),74HC283作為計算單元。請實現…

用相似對角矩陣加速矩陣的冪,以斐波那契數列為例

《用相似對角矩陣加速矩陣的冪,以斐波那契數列為例》 在計算機科學和線性代數領域,矩陣的冪是一個常見而重要的問題。特別是對于大型矩陣,直接計算冪可能會變得十分耗時。然而,通過相似對角矩陣的方法,我們能夠以更為…

多維時序 | MATLAB實現RIME-CNN-LSTM-Multihead-Attention多頭注意力機制多變量時間序列預測

多維時序 | MATLAB實現RIME-CNN-LSTM-Multihead-Attention多頭注意力機制多變量時間序列預測 目錄 多維時序 | MATLAB實現RIME-CNN-LSTM-Multihead-Attention多頭注意力機制多變量時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 MATLAB實現RIME-CNN-…

python字符串格式化--數字精度控制和快速寫法與表達式格式化

數字精度控制 我們可以使用m.n來控制數字的寬度和精度: m是寬度,設置必須為數字,且如果設置的數字小于本身,則不生效n控制小數點精度,必須為數字,會進行四舍五入 示例: 5d:是將寬…

idea本地調試hadoop 遇到的幾個問題

1.DEA對MapReduce的toString調用報錯:Method threw ‘java.lang.IllegalStateException‘ exception. Cannot evaluate org.apache.hadoop.mapreduc 解決方法:關閉 IDEA 中的啟用“ tostring() ”對象視圖 2.代碼和hdfs路徑都對的情況下,程序…

架構設計系列之基礎:初探軟件架構設計

11 月開始突發奇想,想把自己在公司內部做的技術培訓、平時的技術總結等等的內容分享出來,于是就開通了一個 Wechat 訂閱號(灸哥漫談),開始同步發送內容。 今天(12 月 10 日)也同步在 CSDN 上開通…

文章解讀與仿真程序復現思路——電力系統自動化EI\CSCD\北大核心《面向微電網群的云儲能經濟-低碳-可靠多目標優化配置方法》

這篇文章的標題涵蓋了以下關鍵信息: 面向微電網群:研究的重點是微電網群,這可能指的是多個微電網系統的集合,而不僅僅是一個單獨的微電網。微電網是指由分布式能源資源、儲能系統和智能控制組成的小型電力系統,通常能夠…

記錄每日LeetCode 406.根據身高重建隊列 Java實現

題目描述: 假設有打亂順序的一群人站成一個隊列,數組 people 表示隊列中一些人的屬性(不一定按順序)。每個 people[i] [hi, ki] 表示第 i 個人的身高為 hi ,前面 正好 有 ki 個身高大于或等于 hi 的人。 請你重新構…

《C++新經典設計模式》之附錄A 類和對象

《C新經典設計模式》之附錄A 類和對象 A.1 靜態對象的探討與全局對象的構造順序A.1.1 靜態對象的探討A.1.1.cpp A.1.2 全局對象的構造順序問題A.1.2.cpp A.2 拷貝構造函數和拷貝賦值運算符A.2.1 拷貝構造函數和拷貝賦值運算符的書寫A.2.1.cpp A.2.2 對象自我賦值產生的問題A.2.…

實現加鹽加密方法以及java nio中基于MappedByteBuffer操作大文件

自己實現 傳統MD5可通過彩虹表暴力破解, 加鹽加密算法是一種常用的密碼保護方法,它將一個隨機字符串(鹽)添加到原始密碼中,然后再進行加密處理。 1. 每次調用方法產生一個唯一鹽值(UUID )密碼…