dubbo调用超时回滚_面试必问之Dubbo面试题
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 協議
Dubbo 超時時間怎樣設置?
Dubbo 超時時間設置有兩種方式:
- ? 服務提供者端設置超時時間,在 Dubbo 的用戶文檔中,推薦如果能在服務 端多配置就盡量多配置,因為服務提供者比消費者更清楚自己提供的服務特 性。
- ? 服務消費者端設置超時時間,如果在消費者端設置了超時時間,以消費者端 為主,即優先級更高。因為服務調用方設置超時時間控制性更靈活。如果消 費方超時,服務端線程不會定制,會產生警告。
Dubbo 有些哪些注冊中心?
- ? Multicast 注冊中心: Multicast 注冊中心不需要任何中心節點,只要廣播地 址,就能進行服務注冊和發現。基于網絡中組播傳輸實現;
- ? Zookeeper 注冊中心: 基于分布式協調系統 Zookeeper 實現,采用 Zookeeper 的 watch 機制實現數據變更;
- ? redis 注冊中心: 基于 redis 實現,采用 key/Map 存儲,住 key 存儲服務名 和類型,Map 中 key 存儲服務 URL,value 服務過期時間。基于 redis 的發 布/訂閱模式通知數據變更;
- ? Simple 注冊中心
Dubbo 和 Dubbox 之間的區別?
dubbox 基于 dubbo 上做了一些擴展,如加了服務可 restful 調 用,更新了開源組件等。
Dubbo 和 Spring Cloud 的關系?
Dubbo 是 SOA 時代的產物,它的關注點主要在于服務的調用,流 量分發、流量監控和熔斷。而 Spring Cloud 誕生于微服務架構時 代,考慮的是微服務治理的方方面面,另外由于依托了 Spirng、 Spirng Boot 的優勢之上,兩個框架在開始目標就不一致,Dubbo 定位服務治理、Spirng Cloud 是一個生態。 最大的區別:Dubbo 底層是使用 Netty 這樣的 NIO 框架,是基于 TCP 協議傳輸的,配合以 Hession 序列化完成 RPC 通信。
而 SpringCloud 是基于 Http 協議+Rest 接口調用遠程過程的通信, 相對來說,Http 請求會有更大的報文,占的帶寬也會更多。但是 REST 相比 RPC 更為靈活,服務提供方和調用方的依賴只依靠一紙契 約,不存在代碼級別的強依賴。
服務調用超時問題怎么解決?dubbo 在調用服務不成功時,默認是會重試兩次的。
Dubbo 在安全機制方面是如何解決?
Dubbo 通過 Token 令牌防止用戶繞過注冊中心直連,然后在注冊中 心上管理授權。Dubbo 還提供服務黑白名單,來控制服務所允許的調 用方。
Dubbo 超時時間怎樣設置?
Dubbo 超時時間設置有兩種方式:
- ? 服務提供者端設置超時時間,在Dubbo的用戶文檔中,推薦如果能 在服務端多配置就盡量多配置,因為服務提供者比消費者更清楚自己 提供的服務特性。
- ? 服務消費者端設置超時時間,如果在消費者端設置了超時時間,以消 費者端為主,即優先級更高。因為服務調用方設置超時時間控制性更 靈活。如果消費方超時,服務端線程不會定制,會產生警告。
Dubbo 的默認集群容錯方案?
Failover Cluster
Dubbo 支持哪些序列化方式?
默認使用 Hessian 序列化,還有 Duddo、FastJson、Java 自帶序列 化。
總結
以上是生活随笔為你收集整理的dubbo调用超时回滚_面试必问之Dubbo面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多路查找树之2-3树的插入原理
- 下一篇: vue学生作业-图书管理系统