对于Dubbo一些自己的答案
生活随笔
收集整理的這篇文章主要介紹了
对于Dubbo一些自己的答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Dubbo通訊協議Dubbo 缺省協議采用單一長連接和 NIO 異步通訊,適合于小數據量大并發的服務調用,以及服務消費者機器數
遠大于服務提供者機器數的情況。反之,Dubbo 缺省協議不適合傳送大數據量的服務,比如傳文件,傳視頻等,除非請求量很低。特性缺省協議,使用基于 mina 1.1.7 和 hessian 3.2.1 的 tbremoting 交互。連接個數:單連接連接方式:長連接傳輸協議:TCP傳輸方式:NIO 異步傳輸序列化:Hessian 二進制序列化適用范圍:傳入傳出參數數據包較小(建議小于100K),消費者比提供者個數多,單一消費者無法壓滿提供者,
盡量不要用 dubbo 協議傳輸大文件或超大字符串。適用場景:常規遠程服務方法調用2)zookeeper 注冊中心Zookeeper 是 Apacahe Hadoop 的子項目,是一個樹型的目錄服務,支持變更推送,適合作為 Dubbo 服務的
注冊中心,工業強度較高,可用于生產環境,并推薦使用 1。流程說明:服務提供者啟動時: 向 /dubbo/com.foo.BarService/providers 目錄下寫入自己的 URL 地址服務消費者啟動時: 訂閱 /dubbo/com.foo.BarService/providers 目錄下的提供者 URL 地址。
并向 /dubbo/com.foo.BarService/consumers 目錄下寫入自己的 URL 地址監控中心啟動時: 訂閱 /dubbo/com.foo.BarService 目錄下的所有提供者和消費者 URL 地址。支持以下功能:1.當提供者出現斷電等異常停機時,注冊中心能自動刪除提供者信息2.當注冊中心重啟時,能自動恢復注冊數據,以及訂閱請求3.當會話過期時,能自動恢復注冊數據,以及訂閱請求4.當設置 <dubbo:registry check="false" /> 時,記錄失敗注冊和訂閱請求,后臺定時重試5.可通過 <dubbo:registry username="admin" password="1234" /> 設置 zookeeper 登錄信息6.可通過 <dubbo:registry group="dubbo" /> 設置 zookeeper 的根節點,不設置將使用無根樹
Dubbo專題
1. 什么是dubboDubbo是阿里巴巴SOA服務化治理方案的核心框架,是一個分布式服務框架,致力于提供高性能和透明化的RPC 遠程服務調用方案,以及SOA服務治理方案。2. Dubbo使用的什么協議?主要使用協議有(dubbo 、rmi、hessian、http、webservice、thrift、memcached、redis)dubbo:連接個數:單連接連接方式:長連接傳輸協議:TCP傳輸方式:NIO 異步傳輸序列化:Hessian 二進制序列化適用范圍:傳入傳出參數數據包較小(建議小于100K),消費者比提供者個數多,單一消費者無法壓滿提供者, 盡量不要用 dubbo 協議傳輸大文件或超大字符串。適用場景:常規遠程服務方法調用Http:連接個數:多連接連接方式:短連接傳輸協議:HTTP傳輸方式:同步傳輸序列化:表單序列化適用場景:需同時給應用程序和瀏覽器 JS 使用的服務。Webservice:連接個數:多連接連接方式:短連接傳輸協議:HTTP傳輸方式:同步傳輸序列化:SOAP 文本序列化適用場景:系統集成,跨語言調用3. 為什么要用Dubbo進行數據傳輸?一般服務端服務器比較少,消費端有可能會有很多項目或者工程會調用dubbo的接口,而且數據量傳輸較小且 并發量比較高的情況下用dubbo效率會很高。4. Dubbo的負載均衡策略怎么配置?在集群負載均衡時,Dubbo 提供了多種均衡策略,缺省為 random 隨機調用。可以自行擴展負載均衡策略,參見:負載均衡擴展負載均衡策略有( 隨機、輪循、最少活躍調用數、一致性Hash)配置服務端服務級別<dubbo:service interface="..." loadbalance="roundrobin" />客戶端服務級別<dubbo:reference interface="..." loadbalance="roundrobin" />服務端方法級別<dubbo:service interface="..."><dubbo:method name="..." loadbalance="roundrobin"/></dubbo:service>客戶端方法級別<dubbo:reference interface="..."><dubbo:method name="..." loadbalance="roundrobin"/></dubbo:reference>5. Dubbo注冊中心怎么配置?ubbo注冊中心配置主要通過<dubbo:registry> 標簽進行配置,主要使用Zookeeper做注冊中心。 <dubbo:registry address="zookeeper://10.20.153.10:2181" /> 或 <dubbo:registry protocol="zookeeper" address="10.20.153.10:2181" /> 。多注冊中心: Dubbo 支持同一服務向多注冊中心同時注冊,或者不同服務分別注冊到不同的注冊中心上去, 甚至可以同時引用注冊在不同注冊中心上的同名服務。6. dubbo連接注冊中心和直連的區別在開發及測試環境下,經常需要繞過注冊中心,只測試指定服務提供者,這時候可能需要點對點直連,點對點直聯方式,將以服務接口為單位,忽略注冊中心的提供者列表,服務注冊中心,動態的注冊和發現服務,使服務的位置透明,并通過在消費方獲取服務提供方地址列表,實現 軟負載均衡和Failover, 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接 推送變更數據給消費者。服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選 另一臺調用。注冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表注冊中心和監控中心都是可選的,服務消費者可以直連服務提供者7. Dubbo在安全機制方面是如何解決的Dubbo通過Token令牌防止用戶繞過注冊中心直連,然后在注冊中心上管理授權。Dubbo還提供服務 黑白名單,來控制服務所允許的調用方。8. Dubbo中zookeeper做注冊中心,如果注冊中心集群都掛掉,發布者和訂閱者之間還能通信么?可以的,啟動dubbo時,消費者會從zk拉取注冊的生產者的地址接口等數據,緩存在本地。每次調用時, 按照本地存儲的地址進行調用 。史上最全Dubbo
想往高處走,怎么能不懂 Dubbo?Dubbo是國內最出名的分布式服務框架,也是 Java 程序員必備的必會的框架之一。1、Dubbo是什么?Dubbo是阿里巴巴開源的基于 Java 的高性能 RPC 分布式服務框架,現已成為 Apache 基金會孵化項目。2、為什么要用Dubbo?因為是阿里開源項目,國內很多互聯網公司都在用,已經經過很多線上考驗。內部使用了 Netty、Zookeeper, 保證了高性能高可用性。3、Dubbo 和 Spring Cloud 有什么區別?1)通信方式不同Dubbo 使用的是 RPC 通信,而 Spring Cloud 使用的是 HTTP RESTFul 方式。2)組成部分不同4、dubbo都支持什么協議,推薦用哪種?dubbo://(推薦)http://webservice://redis://5、Dubbo需要 Web 容器嗎?Spring ContainerDubbo 的服務容器只是一個簡單的 Main 方法,并加載一個簡單的 Spring 容器,用于暴露服務。9、Dubbo默認使用什么注冊中心,還有別的選擇嗎?推薦使用 Zookeeper 作為注冊中心,還有 Redis、Multicast、Simple 注冊中心,但不推薦。10、Dubbo有哪幾種配置方式?1)Spring 配置方式2)Java API 配置方式Dubbo 簡介Dubbo 是一個分布式服務框架,致力于提供高性能和透明化的 RPC 遠程服務調用方案,以及 SOA 服務治理 方案。其核心部分包括:遠程通訊:提供對多種基于長連接的 NIO 框架抽象封裝,包括多種線程模型、序列化、"請求-響應"模式的 信息交換方案;集群容錯:提供基于接口方法的透明遠程過程調用,包括多協議支持、軟負載均衡、失敗容錯、地址路由、 動態配置等集群支持;自動發現:基于注冊中心目錄服務,使服務消費方能動態地查找服務提供方,使地址透明,使服務提供方可以 平滑增加或減少機器。Dubbo 開發流程第一步:要在系統中使用 dubbo 應該先搭建一個注冊中心,一般推薦使用 zookeeper;第二步:有了注冊 中心然后是發布服務,發布服務需要使用 spring 容器和 dubbo 標簽來發布服務。并且發布服務時需要 指定注冊中心的位置;第二步:服務發布之后就是調用服務。一般調用服務也是使用 spring 容器和 dubbo 標簽來引用服務, 這樣就可以在客戶端的容器中生成一個服務的代理對象,在 action 或者 Controller 中直接調用 service 的方法即可。Zookeeper 注冊中心的作用主要就是注冊和發現服務的作用。類似于房產中介的作用,在系統中并不參與 服務的調用及數據的傳輸。?
總結
以上是生活随笔為你收集整理的对于Dubbo一些自己的答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ActiveMQ专题
- 下一篇: FastDFS在项目中的应用