配置dubbo緩存文件
1. bbo使用zookeeper連接,zookeeper宕機後怎麼處理
1、配置文件同步
2、主從切換
3、分布式隊列
4、分布式鎖
2. bbo實際應用是需要配置消費者嗎
1. Dubbo是什麼?
Dubbo是一個分布式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,bbo就是個服務框架,如
果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有bbo這樣的分布式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分布式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在bbo上注冊)
其核心部分包含:
1. 遠程通訊: 提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式。
2. 集群容錯: 提供基於介面方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群支持。
3. 自動發現: 基於注冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。
2. Dubbo能做什麼?
1.透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
2.軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。
3. 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行載入。
之
前使用Web
Service,我想測試介面可以通過模擬消息的方式通過soapui或LR進行功能測試或性能測試。但現在使用Dubbo,介面之間不能直接交互,我嘗
試通過模擬消費者地址測試,結果不堪入目,再而使用jmeter通過junit進行測試,但還是需要往bbo上去注冊,如果再不給提供源代碼的前提
下,這個測試用例不好寫啊....
3. bbo的架構
bbo架構圖如下所示:
節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
這點我覺得非常好,角色分明,可以根據每個節點角色的狀態來確定該服務是否正常。
調用關系說明:
0 服務容器負責啟動,載入,運行服務提供者。
1. 服務提供者在啟動時,向注冊中心注冊自己提供的服務。
2. 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
3. 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基於長連接推送變更數據給消費者。
4. 服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。
5. 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鍾發送一次統計數據到監控中心。
bbo的容錯性顯而易見,性能方面還沒有還得及測,我們系統某頁面需要掉5次介面,本來想建議做個緩存,但業務關系不能採納,還需要研究下bbo的性能調優問題...
4. bbo使用方法。
Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行載入。如果不想使用Spring配置,而希望通過API的方式進行調用(不推薦)
下面我們就來看看spring配置方式的寫法:
服務提供者:
1. 下載zookeeper注冊中心,下載地址: 下載後解壓即可,進入D:apach-zookeeper-3.4.5bin,
雙擊zkServer.cmd啟動注冊中心服務。
2. 定義服務介面: (該介面需單獨打包,在服務提供方和消費方共享)
下面這個例子不錯,寫的很詳細可以做個model.
package com.unj.bbotest.provider;
import java.util.List;
public interface DemoService {
String sayHello(String name);
public List getUsers();
}
在服務提供方實現介面:(對服務消費方隱藏實現)
package com.unj.bbotest.provider;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class DemoServiceImpl implements DemoService{
public String sayHello(String name) {
return "Hello " + name;
}
public List getUsers() {
List list = new ArrayList();
User u1 = new User();
u1.setName("jack");
u1.setAge(20);
u1.setSex("男");
User u2 = new User();
u2.setName("tom");
u2.setAge(21);
u2.setSex("女");
User u3 = new User();
u3.setName("rose");
u3.setAge(19);
u3.setSex("女");
list.add(u1);
list.add(u2);
list.add(u3);
return list;
}
}
用Spring配置聲明暴露服務:
<beans xmlns=""
xmlns:xsi=""
xmlns:bbo=""
xsi:schemaLocation="
/spring-beans.xsd
/bbo.xsd
">
<!-- 使用multicast廣播注冊中心暴露服務地址
-->
載入Spring配置,啟動服務:
package com.unj.bbotest.provider;
import org.springframework.context.support.;
public class Provider {
public static void main(String[] args) throws Exception {
context = new (new String[] {"applicationContext.xml"});
context.start();
System.in.read(); // 為保證服務一直開著,利用輸入流的阻塞來模擬
}
}
服務消費者:
applicationContext-bbo.xml 中注冊自己需要調用的介面,我剛開始測試的時候需要的介面很多,所以把這個文件寫的滿滿的,後來熟悉了把介面按業務類型分開,寫了N多個 applicationContext-bbo-***.xml 簡練多了 》。
1.通過Spring配置引用遠程服務:
<beans xmlns=""
xmlns:xsi="" xmlns:bbo=""
xsi:schemaLocation="
/spring-beans.xsd
/bbo.xsd
">
<!-- -->
<bbo:reference id="demoService"
interface="com.unj.bbotest.provider.DemoService" />
2.載入Spring配置,並調用遠程服務:
package com.alibaba.bbo.demo.pp;
import java.util.List;
import org.springframework.context.support.;
import com.unj.bbotest.provider.DemoService;
public class Consumer {
public static void main(String[] args) throws Exception {
context = new (
new String[] { "applicationContext.xml" });
context.start();
DemoService demoService = (DemoService) context.getBean("demoService"); //
String hello = demoService.sayHello("tom"); // ?
System.out.println(hello); //
//
List list = demoService.getUsers();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
// System.out.println(demoService.hehe());
System.in.read();
}
}
/
3. Dubbo的工作原理
Provider
暴露服務方稱之為「服務提供者」。
Consumer
調用遠程服務方稱之為「服務消費者」。
Registry
服務注冊與發現的中心目錄服務稱之為「服務注冊中心」。
Monitor
統計服務的調用次數和調用時間的日誌服務稱之為「服務監控中心」。
(1) 連通性:
注冊中心負責服務地址的注冊與查找,相當於目錄服務,服務提供者和消費者只在啟動時與注冊中心交互,注冊中心不轉發請求,壓力較小
監控中心負責統計各服務調用次數,調用時間等,統計先在內存匯總後每分鍾一次發送到監控中心伺服器,並以報表展示
服務提供者向注冊中心注冊其提供的服務,並匯報調用時間到監控中心,此時間不包含網路開銷
服務消費者向注冊中心獲取服務提供者地址列表,並根據負載演算法直接調用提供者,同時匯報調用時間到監控中心,此時間包含網路開銷
注冊中心,服務提供者,服務消費者三者之間均為長連接,監控中心除外
注冊中心通過長連接感知服務提供者的存在,服務提供者宕機,注冊中心將立即推送事件通知消費者
注冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表
注冊中心和監控中心都是可選的,服務消費者可以直連服務提供者
(2) 健壯性:
監控中心宕掉不影響使用,只是丟失部分采樣數據
資料庫宕掉後,注冊中心仍能通過緩存提供服務列表查詢,但不能注冊新服務
注冊中心對等集群,任意一台宕掉後,將自動切換到另一台
注冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地緩存通訊
服務提供者無狀態,任意一台宕掉後,不影響使用
服務提供者全部宕掉後,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復
(3) 伸縮性:
注冊中心為對等集群,可動態增加機器部署實例,所有客戶端將自動發現新的注冊中心
服務提供者無狀態,可動態增加機器部署實例,注冊中心將推送新的服務提供者信息給消費者
4. 有哪些系統是用bbo上面開發的
關於bbo的使用場景,這個要從系統的演變開始將起,既然bbo的使用很多是在電商系統中,那麼就從電商系統的演變開始講起。
一個簡單的電商網站說起,它可能包含如下的幾個模塊和功能,如首頁、detail頁、list頁、下單頁、支付頁以及後台管理等頁面和功能。單一的系統架構,使得在開發過程中,佔用的資源越來越多,而且隨著流量的增加使得維護起來越來越難以維護。
於是就產生了垂直應用架構,垂直應用架構解決了單一應用架構所面臨的擴容問題,流量能夠分散到各個子系統當中,且系統的體積可控,一定程度上降低了開發人員之間協同以及維護的成本,提升了開發效率。但是在垂直架構中相同邏輯代碼需要不斷的復制,不能復用。所以分布式系統就這樣應運而生了。
公共的邏輯業務提取出來形成服務,對外提供。這樣對於維護和升級都只需要切分成一個一個的小系統去維護,也可以讓前端業務系統與底層數據訪問分離,團隊分工更為明確。
分布式系統所依賴的基礎設施包括服務框架、消息中間件、數據訪問中間件、配置中心、分布式緩存系統、持久化存儲(關系資料庫、nosql資料庫)、搜索引擎、CDN網路、負載均衡系統、運維自動化系統、硬體虛擬化及鏡像管理系統、分布式文件系統、日誌收集系統、監控系統、離線計算、實時計算、數據倉庫等等。隨著服務化的進一步發展,服務越來越多,服務之間的調用和依賴關系也越來越復雜,誕生了面向服務的架構體系(SOA),也因此衍生出了一系列相應的技術,如對服務提供、服務調用、連接處理、通信協議、序列化方式、服務發現、服務路由、日誌輸出等行為進行封裝的服務框架。
就這樣為分布式系統的服務治理框架就出現了,bbo也就這樣產生了。bbo在整個分布式系統的架構中,按照分層的架構來架構,使得各個層級之間最大限度的松耦合.
5. bbo 連接緩存會佔用多大
在路由器上所有連接進來的主機是有租約緩存的,不同型號的設備默認的緩存時間不太一樣,一般都是1天或2天,所以即使你關機了,在租約緩存到期之前,這個IP會一直給你留著。你手動設置的IP一樣會有租約,在租約到期之前
6. zookper+bboadmin怎麼刷新緩存
全職隊要求:MM最好99+ 90J武器覆霜武器+7以上99J以上武器神月武器+5以上 滿狀態血6000以上
WX要大 最好99+ 滿狀態血1W+ 武器精煉要求不是很高,主要是要吼住怪
SS 滿狀態血1.7W+ 其他要求不高 要能團怪
MG 最好100+ 神月武器或天罪+5以上 最好+7以上 血不作多大要求
FS 最好99+ 穿99套 滿狀態血5500+ 武器+7以上
YJ 90+ 無過多要求 會跑票
隊里至少一人會看BOSS時間
7. 關於bbo在linux環境weblogic下啟動報錯
現在一般能打開64個。
文件描述符的范圍是0 ~ O P E N _ M A X 。早期的U N I X版本採用的上限值是1 9 (允許每個進程打開2 0個文件),現在很多系統則將其增加至6 3。
8. 20.SpringCloud和Dubbo的區別是什麼
Spring Cloud是一系列微服務框架的有序集合,而Dubbo有2中常見理解,一種是狹義的理解,一種是廣義的。狹義的Dubbo,指的是一款高性能的RPC框架,廣義的Dubbo值得是一整套微服務解決方案!
簡而言之,Dubbo確實類似於Spring Cloud的一個子集,Dubbo功能和文檔完善,在國內有很多的成熟用戶。
Dubbo具有調度、發現、監控、治理等功能,**支持相當豐富的服務治理能力**。Dubbo架構下,注冊中心對等集群,並會緩存服務列表已被資料庫失效時繼續提供發現功能,本身的服務發現結構有很強的**可用性與健壯性**,足夠支持高訪問量的網站。
SpringCloud有眾多子項目組成,這其中有Spring Cloud Netflix,Spring Cloud Config,Spring Cloud Consul,Spring Cloud Alibaba,包含了Dubbo整套。SpringCloud提供了搭建分布式系統及微服務常用的工具,如配置管理、服務發現、斷路器、智能路由、微代理、控制匯流排、一次性token、全局鎖、選主、分布式會話和集群狀態等,滿足了構建微服務所需的所有解決方案。
如果你想掌握時下熱門微服務技術棧,跟上時代技術步伐,黑馬程序員教程視頻資源官網都免費發布,直接去學就行了。
9. 如何清除bbo lur緩存
Dubbo預設會在啟動時檢查依賴的服務是否可用,不可用時會拋出異常,阻止Spring初始化完成,以便上線時,能及早發現問題,默認check=true。
如果你的Spring容器是懶載入的,或者通過API編程延遲引用服務,請關閉check,否則服務臨時不可用時,會拋出異常,拿到null引用,如果check=false,總是會返回引用,當服務恢復時,能自動連上。