Java進階之微服務架構面試題:Dubbo+Spring Boot+Spring Cloud
微服務架構
- 服務的前世今生
- 基於分佈式思想下的RPC解決方案
- Dubbo應用及源碼解讀
- Docker虛擬化技術
- SpringCloud應用及源碼解讀
- SpringBoot
Dubbo
- Dubbo中zookeeper做註冊中心,如果註冊中心集群都掛掉,發佈者和訂閱者之間還能通信麼?
- dubbo服務負載均衡策略?
- Dubbo在安全機制方面是如何解決的
- dubbo連接註冊中心和直連的區別
- dubbo服務集群配置(集群容錯模式)
- dubbo通信協議dubbo協議為什麼要消費者比提供者個數多
- dubbo通信協議dubbo協議為什麼不能傳大包
- dubbo通信協議dubbo協議為什麼採用異步單一長連接
- dubbo通信協議dubbo協議適用範圍和適用場景
- RMI協議
- Hessian協議
- http
- Webservice
- Thrif
面試題及答案的獲取方式,歡迎加入Java進階架構交流:805685193。提供Java架構進階思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分佈式項目實戰學習架構師視頻。
Spring Boot
- 什麼是Spring Boot?
- Spring Boot有哪些優點?
- 什麼是JavaConfig?
- 如何重新加載Spring Boot上的更改,而無需重新啟動服務器?
- Spring Boot中的監視器是什麼?
- 如何在Spring Boot中禁用Actuator端點安全性?
- 如何在自定義端口上運行Spring Boot應用程序?
- 什麼是YAML?
- 如何實現Spring Boot應用程序的安全性?
- 如何集成Spring Boot和ActiveMQ?
- 如何使用Spring Boot實現分頁和排序?
- 什麼是Swagger?你用Spring Boot實現了它嗎?
- 什麼是Spring Profiles?
- 什麼是Spring Batch?
- 什麼是FreeMarker模板?
- 如何使用Spring Boot實現異常處理?
- 您使用了哪些starter maven依賴項?
- 什麼是CSRF攻擊?
- 什麼是WebSockets?
- 什麼是AOP?
- 什麼是Apache Kafka?
- 我們如何監視所有Spring Boot微服務?
面試題及答案的獲取方式,歡迎加入Java進階架構交流:805685193。提供Java架構進階思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分佈式項目實戰學習架構師視頻。
Spring Cloud
- 什麼是Spring Cloud?
- 使用Spring Cloud有什麼優勢?
- 服務註冊和發現是什麼意思?Spring Cloud如何實現?
- 負載平衡的意義什麼?
- 什麼是Hystrix?它如何實現容錯?
- 什麼是Hystrix斷路器?我們需要它嗎?
- 什麼是Netflix Feign?它的優點是什麼?
- 什麼是Spring Cloud Bus?我們需要它嗎?
面試題及答案的獲取方式,歡迎加入Java進階架構交流:805685193。提供Java架構進階思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分佈式項目實戰學習架構師視頻。
答案解析
dubbo連接註冊中心和直連的區別
在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連,
點對點直聯方式,將以服務接口為單位,忽略註冊中心的提供者列表,
服務註冊中心,動態的註冊和發現服務,使服務的位置透明,並通過在消費方獲取服務提供方地址列表,實現軟負載均衡和Failover, 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者。
服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。註冊中心負責服務地址的註冊與查找,相當於目錄服務,服務提供者和消費者只在啟動時與註冊中心交互,註冊中心不轉發請求,服務消費者向註冊中心獲取服務提供者地址列表,並根據負載算法直接調用提供者,註冊中心,服務提供者,服務消費者三者之間均為長連接,監控中心除外,註冊中心通過長連接感知服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者
註冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表
註冊中心和監控中心都是可選的,服務消費者可以直連服務提供者。
Spring Boot有哪些優點?
- 減少開發,測試時間和努力。
- 使用JavaConfig有助於避免使用XML。
- 避免大量的Maven導入和各種版本衝突。
- 提供意見發展方法。
- 通過提供默認值快速開始開發。
- 沒有單獨的Web服務器需要。這意味著你不再需要啟動Tomcat,Glassfish或其他任何東西。
- 需要更少的配置 因為沒有web.xml文件。只需添加用@ Configuration註釋的類,然後添加用@Bean註釋的方法,Spring將自動加載對象並像以前一樣對其進行管理。您甚至可以將@Autowired添加到bean方法中,以使Spring自動裝入需要的依賴關係中。
- 基於環境的配置 使用這些屬性,您可以將您正在使用的環境傳遞到應用程序:-Dspring.profiles.active = {enviornment}。在加載主應用程序屬性文件後,Spring將在(application{environment} .properties)中加載後續的應用程序屬性文件。
什麼是Spring Cloud?
Spring cloud流應用程序啟動器是基於Spring Boot的Spring集成應用程序,提供與外部系統的集成。Spring cloud Task,一個生命週期短暫的微服務框架,用於快速構建執行有限數據處理的應用程序。
面試題及答案的獲取方式,歡迎加入Java進階架構交流:805685193。提供Java架構進階思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分佈式項目實戰學習架構師視頻。