資料05 zookeeperzookeeper筆記_第1頁
資料05 zookeeperzookeeper筆記_第2頁
資料05 zookeeperzookeeper筆記_第3頁
資料05 zookeeperzookeeper筆記_第4頁
資料05 zookeeperzookeeper筆記_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、JavaEE 課程系列Zookeeper 筆記2019 年 5 月 7 日1 方法遠程調用代碼的對比1更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網/ 不使用遠程方法調用框架/ 1.創(chuàng)建 HttpClient 實例CloseableHttpClient client = HttpClientBuilder.create().build(); try / 2.聲明服務器端 URL 地址Stringurl=http:/服務器端實際IP:54321/bookManager/book/getBook/23?requestParam=AAA;/ 3.創(chuàng)建具體請求方式

2、實例HttpGet get = new HttpGet(url);/ 4.調用客戶端對象執(zhí)行請求,進而獲得響應對象CloseableHttpResponse response = client.execute(get);/ 使用遠程方法調用框架Controllerpublic class HelloController / 將封裝了遠程服務功能的接口類型的 bean 裝配到當前組件Autowiredprivate EmpRemoteService empRemoteService;RequestMapping(/aaa/bbb/ccc) public String doXxx()mpList(

3、);/ .JavaEE 課程系列2 遠程方法調用框架和注冊中心工作機制2.1 技術方案一Dubbo 作為遠程方法調用框架+Zookeeper 作為注冊中心2更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網/ 5.從響應結果中獲取封裝響應數(shù)據(jù)的 Entity 對象HttpEntity entity = response.getEntity();/ 6.借助工具類將 HttpEntity 中包含的數(shù)據(jù)轉換成可識別的字符串String responseData = EntityUtils.toString(entity, UTF-8);/ 7.處理響應結果Syst

4、em.out.println(responseData);/Ensures that the entity content is fully consumed and the content stream, if exists, is closed./確認 entity 的內容已經完全被 consume 了,而且如果內容的流存在,確認其已經關閉了。EntityUtils.consume(entity); catch (ClientProtocolException e) e.printStackTrace(); catch (IOException e) e.printStackTrace()

5、; finally / 8.釋放連接,無論操作是否成功都必須釋放連接if(client != null) try client.close(); catch (IOException e) e.printStackTrace();JavaEE 課程系列2.2 技術方案二SpringBoot+SpringCloudEureka 作為注冊中心Feign 作為遠程方法調用框架3Zookeeper3.1 簡介ZooKeeper is a centralizedservice for maintainingconfiguration information, naming,providing distr

6、ibuted synchronization, and providing group services. All of these kinds of servicesare used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of

7、 implementing these kinds of services, applications initially usually skimp on them, which make them brittle in the presence of change and difficult to manage. Even when done correctly, different implementations of these services lead to managementcomplexity when the applications are deployed.3更多 Ja

8、va 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列3.2 樹形目錄結構ZooKeeper 使用樹形結構管理數(shù)據(jù)。而且以“/”作為樹形結構的根節(jié)點。樹形結構中的每一個節(jié)點都稱為“znode”。文件系統(tǒng)中的目錄可以存放其他目錄和文件,znode 中可以存放其他 znode,也可以對應一個具體的值。znode 和它對應的值之間是鍵值對的關系。每一個 znode 上同時還有一套狀態(tài)信息,稱為:stat。3.3 異步機制在分布式項目中隨著業(yè)務功能越來越多,具體的功能模塊也會越來越多,一個大型的電商項目能達到幾十個模塊甚至更多。這么多業(yè)務模塊的工程有可能需要共

9、享一些信息,這些信息一旦發(fā)生變化,在各個相關模塊工程中手動逐一修改會非常麻煩,甚至可能發(fā)生遺漏,嚴重的可能導致系統(tǒng),造成經濟損失。使用 ZooKeeper機制后,各個模塊工程在特定 znode 上設置 Watcher(觀察者)來監(jiān)控當前節(jié)點上值的變化。一旦 Watcher 檢測到了數(shù)據(jù)變化就會立即程,從而自動實現(xiàn)“一處修改,處處生效”的效果。模塊工4更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列3.4 leader-follower 集群4 Zookeeper 安裝4.1 環(huán)境準備Zookeeper 需要在 JVM 虛擬機上運行,所以

10、一定要保證有 JDK 支持。4.2 上傳 Zookeeperzookeeper-3.4.9.tar.gz4.3 解壓tar -zxvf /opt/zookeeper-3.4.9.tar.gz4.4 準備配置文件cp /opt/zookeeper-3.4.9/conf/zoo_sample.cfg /opt/zookeeper-3.4.9/conf/zoo.cfgZookeeper 要求配置文件的文件名必須是:zoo.cfg4.5 創(chuàng)建數(shù)據(jù)目錄mkdir /opt/zookeeper-3.4.9/data4.6 在 zoo.cfg 中配置數(shù)據(jù)目錄的位置dataDir=/opt/zookeeper

11、-3.4.9/data5更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網rootrich redis# java -version java version 1.8.0_121Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)JavaEE 課程系列5 Zookeeper 服務器端操作5.1 zoo.cfg 文件解讀5.2 常用命令5.2.1 ZooKeeper 服務器與客戶端啟

12、動服務器:./zkServer.sh start 停止服務器:./zkServer.sh stop 啟動客戶端:./zkCli.sh退出客戶端:zk: localhost:2181(CONNECTED) 6 quit5.2.2 ls查看當前 znode 中所包含的內容6更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網tickTime通信心跳數(shù),ZooKeeper 服務器心跳時間,單位毫秒ZooKeeper 使用的基本時間,服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime時間就會發(fā)送一個心跳,時間單位為毫秒。用于心跳機制,并且設置

13、最小的 session 超時時間為兩倍心跳時間(session 的最小超時時間是 2*tickTime)。initLimitLF 初始通信時限集群中的Follower 跟隨者服務器(F)與Leader 領導者服務器(L)之間初始連接時能容忍的最多心跳數(shù)(tickTime 的數(shù)量)。投票選舉新 Leader 的初始化時間,F(xiàn)ollower 在啟動過程中,會從 Leader 同步所有最新數(shù)據(jù),然后確定自己能夠對外服務的起始狀態(tài)。Leader 允許 Follower 在 initLimit 時間內完成這個工作。syncLimitLF 同步通信時限集群中Leader 與 Follower 之間的最大響

14、應時間單位,假如響應超過 syncLimit * tickTime,Leader 認為Follwer死掉,從服務器列表中刪除 Follwer。在運行過程中,Leader 負責與 ZooKeeper 集群中所有機器進行通信,例如通過一些心跳檢測機制,來檢測機器的存活狀態(tài)。如果 L 發(fā)出心跳包在 syncLimit 之后,還沒有從 F 那收到響應,那么就認為這個 F 已經不在線了。dataDir數(shù)據(jù)文件目錄+數(shù)據(jù)持久化路徑保存內存數(shù)據(jù)庫快照信息的位置,如果沒有其他說明,更新的事務日志也保存到數(shù)據(jù)庫。clientPort客戶端連接端口JavaEE 課程系列5.2.3 ls2查看當前節(jié)點數(shù)據(jù)并能看到更

15、新次數(shù)等數(shù)據(jù)5.2.4 stat查看節(jié)點狀態(tài)5.2.5 createcreate -s -e path data acl普通創(chuàng)建:不帶有-s、-e 參數(shù)-s:含有序列-e:臨時(重啟或者超時消失)5.2.6 set設置節(jié)點的具體值set 節(jié)點 value 值5.2.7 get獲得節(jié)點的值get 節(jié)點5.2.8 delete可以刪除指定 znode,當該 znode 擁有子 znode 時,必須先刪除其所有子 znode,否則操作將失敗。5.2.9 rmrrmr 命令可用于代替 delete 命令,rmr 是一個遞歸刪除命令,如果發(fā)生指定節(jié)點擁有子節(jié)點時,rmr 命令會首先刪除子節(jié)點。5.3 Z

16、ookeeper 節(jié)點類型5.3.1 PERSISTENT-持久化目錄節(jié)點客戶端與 zookeeper 斷開連接后,該節(jié)點依舊存在5.3.2 PERSISTENT_SEQUENTIAL-持久化順序編號目錄節(jié)點客戶端與 zookeeper 斷開連接后,該節(jié)點依舊存在,只是 Zookeeper 給該節(jié)點名稱進行順序編號5.3.3 EPHEMERAL-臨時目錄節(jié)點客戶端與 zookeeper 斷開連接后,該節(jié)點被刪除5.3.4 EPHEMERAL_SEQUENTIAL-臨時順序編號目錄節(jié)點客戶端與 zookeeper 斷開連接后,該節(jié)點被刪除,只是 Zookeeper 給該節(jié)點名稱進7更多 Java

17、 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列行順序編號5.4 Zookeeper 節(jié)點狀態(tài)5.4.1 介紹znode 維護了一個 stat 結構,這個 stat 包含數(shù)據(jù)變化的版本號、訪問控制列表變化、還有時間戳。版本號和時間戳一起,可讓 ZooKeeper 驗證緩存和協(xié)調更新。每次 znode 的數(shù)據(jù)發(fā)生了變化,版本號就增加。例如:無論何時客戶端檢索數(shù)據(jù),它也一起檢索數(shù)據(jù)的版本號。并且當客戶端執(zhí)行更新或刪除時,客戶端必須提供他正在改變的 znode 的版本號。如果它提供的版本號和真實的數(shù)據(jù)版本號不一致,更新將會失敗。5.4.2 屬性czxid:

18、引起這個 znode 創(chuàng)建的 zxid,創(chuàng)建節(jié)點的事務的 zxid(ZooKeeper TransactionId)ctime:znode 被創(chuàng)建的毫秒數(shù)(從 1970 年開始) mzxid:znode 最后更新的 zxidmtime:znode 最后修改的毫秒數(shù)(從 1970 年開始) pZxid:znode 最后更新的子節(jié)點 zxidcversion:znode 子節(jié)點變化號,znode 子節(jié)點修改次數(shù)dataversion:znode 數(shù)據(jù)變化號aclVersion:znode 訪問控制列表的變化號ephemeralOwner:如果是臨時節(jié)點,這個是 znode 擁有者的 session

19、 id。如果不是臨時節(jié)點則是 0。dataLength:znode 的數(shù)據(jù)長度numChildren:znode 子節(jié)點數(shù)量5.5 四字命令5.5.1 介紹ZooKeeper 支持某些特定的四字命令,他們大多是用來查詢 ZooKeeper 服務的當前狀態(tài)及相關信息的,使用時通過 telnet 或 nc 向 ZooKeeper 提交相應命令。rootright bin# echo ruok | nc localhost 2181imokrootright bin#5.5.2 nc 命令nc 命令需要安裝對應的程序才可以使用。yum install -y nc5.5.3 常用四字命令ruok:測試

20、服務是否處于正確狀態(tài)。如果確實如此,那么服務返回“imok ”, 否則不做任何響應stat:輸出關于性能和連接的客戶端的列表8更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列conf:輸出相關服務配置的詳細信息cons:列出所有連接到服務器的客戶端的完全的連接 /會話的詳細信息。包括“接受 / 發(fā)送”的包數(shù)量、會話 id 、操作延遲、最后的操作執(zhí)行等等信息dump:列出未經處理的會話和臨時節(jié)點envi:輸出關于服務環(huán)境的詳細信息(區(qū)別于 conf 命令)reqs:列出未經處理的請求wchs:列出服務器 watch 的詳細信息wchc:通

21、過 session 列出服務器 watch 的詳細信息,它的輸出是一個與 watch相關的會話的列表wchp:通過路徑列出服務器的路徑watch 的詳細信息。它輸出一個與session 相關6 Java 客戶端6.1 依賴信息6.2 主要功能代碼9更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網OperationItemExample連接信息服務器地址67:2181節(jié)點路徑/atguigu會話超時時間50*1000創(chuàng)建 ZooKeeper 對象連接 ZooKeeper 服務器public ZooKeeper(String connec

22、tString,int sessionTimeout,Watcher watcher) throws IOExceptionthis(connectString, sessionTimeout, watcher, false);斷開ZooKeeper 服務器連接org.apache.zookeeper.ZooKeeper.close()com.101teczkclient0.10org.apache.zookeeperzookeeper3.4.9JavaEE 課程系列6.3 修改節(jié)點數(shù)據(jù)操作10更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網/ 1.連接 Z

23、ookeeper 服務器的信息String connectString = 00:2181; int sessionTimeout = 5000;Watcher watcher = new Watcher() Override public void process(WatchedEvent event) ;/ 2.創(chuàng)建 ZooKeeper 建立連接ZooKeeper zooKeeper = new ZooKeeper(connectString, sessionTimeout, watcher);/ 3.通過設置節(jié)點值測試連接byte data = BBB.getBy

24、tes();/ -1 表示不驗證版本號int version = -1;Stat stat = zooKeeper.setData(/fruit, data, version); System.out.println(stat.getVersion();/ 4.關閉連接zooKeeper.close();創(chuàng)建節(jié)點org.apache.zookeeper.ZooKeeper.create( String,byte,List, /可以使用 Ids.OPEN_ACL_UNSAFE CreateMode)/CreateMode 本身是一個枚舉類型獲取節(jié)點上的數(shù)據(jù)org.apache.zookeeper

25、.ZooKeeper.getData( String,boolean, Stat)設置節(jié)點上的數(shù)據(jù)org.apache.zookeeper.ZooKeeper.setData( String,byte,int)/使用-1 作為版本號的值時可以匹配所有版本號判斷節(jié)點是否存在org.apache.zookeeper.ZooKeeper.exists(String, boolean)JavaEE 課程系列異步機制77.1 工作機制介紹客戶端注冊它關心的目錄節(jié)點,當目錄節(jié)點發(fā)生變化(數(shù)據(jù)改變、被刪除、子目錄節(jié)點增加刪除)時,zookeeper 會客戶端。ZooKeeper 支持 Watch(觀察)機制

26、,客戶端可以在每個 znode 結點上設置一個Watcher(觀察者)。如果被觀察服務端的 znode 結點有變更,那么 Watcher 就會被觸發(fā),這個 Watcher 所屬的客戶端將接收到一個包被告知結點已經發(fā)生變化,這就是把相應的給設置過 Watcher 的 Client 端。ZooKeeper 里的所有讀取操作:getData(),getChildren()和 exists()都有設置 Watch 的選項??偨Y成一句話:ZooKeeper 的觀察機制是一種異步回調的觸發(fā)機制。當數(shù)據(jù)有了變化時 zkServer 向客戶端發(fā)送一個 Watch發(fā)一次就失效了。,這是個一次性動作,觸如果想繼續(xù)

27、 Watch 的話,需要客戶端重新設置 Watcher。因此如果你得到了一個Watch,并且在將來繼續(xù)得到節(jié)點變化繼續(xù)觀察。,那么就必須另外設置一個新的 Watcher節(jié)點有不同的改動方式??梢哉J為 ZooKeeper 維護兩個觀察列表:數(shù)據(jù)觀察和子節(jié)點觀察。getData()和 exists()設置數(shù)據(jù)觀察。getChildren()設置子節(jié)點觀察。此外,還可以認為不同的返回數(shù)據(jù)有不同的觀察。getData() 和 exists() 返回節(jié)點的數(shù)據(jù), 而getChildren()返回子節(jié)點列表。所以,setData()將為 znode 觸發(fā)數(shù)據(jù)觀察。成功的 create() 將為新創(chuàng)建的節(jié)點

28、觸發(fā)數(shù)據(jù)觀察,為其父節(jié)點觸發(fā)子節(jié)點觀察。成功的 delete()將會為被刪除的節(jié)點觸發(fā)數(shù)據(jù)觀察以及子節(jié)點觀察(因為節(jié)點不能再有子節(jié)點了),為其父節(jié)點觸發(fā)子節(jié)點觀察。如果一個節(jié)點設置存在觀察時尚未創(chuàng)建,并且在斷開連接后執(zhí)行節(jié)點創(chuàng)建以及刪除操作,那么這個節(jié)點上設置的觀察客戶端接收不到,會丟失。7.2 一次性11更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網/ 1.準備連接 Zookeeper 服務器的連接信息String connectingString = 00:2181; int sessionTimeout = 5000;Java

29、EE 課程系列7.3 持續(xù)12更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網/ 專門封裝一個方法用來實現(xiàn)持續(xù)的異步public void getNodeData(String path, ZooKeeper zooKeeper) throws KeeperException, InterruptedException / 調用獲取節(jié)點值的方法時設置 Watcher 進行監(jiān)控/ 2.創(chuàng)建 Zookeeper 對象ZooKeeper zooKeeper = new ZooKeeper(connectingString, sessionTimeout, new

30、Watcher() public void process(WatchedEvent event) );/ 3.獲取指定節(jié)點的值String path = /fruit;byte data = zooKeeper.getData(path, new Watcher() Overridepublic void process(WatchedEvent event) System.out.println(/fruit 節(jié)點的值被修改了!+Thread.currentThread().getName();, new Stat();/ 4.將獲取節(jié)點值時得到的字節(jié)數(shù)組轉化成 String 類型Stri

31、ng dataString = new String(data);/ 5.打印結果System.out.println(dataString);/ 讓程序不能停while(true) Thread.sleep(5000);System.err.println( 藥不能停, 不能停 代表程序原本要執(zhí)行的業(yè)務邏輯功能+Thread.currentThread().getName();/ 6.關閉連接/ zooKeeper.close();JavaEE 課程系列13更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網public static void main(St

32、ring args) throws IOException, KeeperException, InterruptedException/ 1.建立連接String connectingString = 00:2181; int sessionTimeout = 5000;ZooKeeper zooKeeper = new ZooKeeper(connectingString, sessionTimeout, new Watcher() public void process(WatchedEvent event) );/ 2.獲取節(jié)點數(shù)據(jù)String path = /

33、fruit;new AsyncNoticeForever().getNodeData(path, zooKeeper);/ 3.讓方法持續(xù)運行while(true) Thread.sleep(5000);byte data = zooKeeper.getData(path, new Watcher() Overridepublic void process(WatchedEvent event) / 接收到異步時,再次調用獲取節(jié)點值方法,目的是設置新的 Watchertry getNodeData(path, zooKeeper); catch (KeeperException e) e.pr

34、intStackTrace(); catch (InterruptedException e) e.printStackTrace();, new Stat();String result = new String(data);System.err.println(當前節(jié)點值=+result);JavaEE 課程系列8 集群8.1 數(shù)據(jù)通信機制同一臺服務器上:IP 地址一樣,端不同的服務器上:IP 地址不一樣,端必須得不一樣可以用同一個8.2 搭建步驟第 1 步:創(chuàng)建集群所在目錄mkdir /opt/cluster-zk第 2 步:重新解壓 tar 包到集群目錄tar -zxvf /opt/z

35、ookeeper-3.4.9.tar.gz -C /opt/cluster-zk/第 3 步:復制新的解壓目錄cp -r /opt/cluster-zk/zookeeper-3.4.9/ /opt/cluster-zk/zkone第 4 步:配置 zkonei:創(chuàng)建 zoo.cfg 配置文件cp /opt/cluster-zk/zkone/conf/zoo_sample.cfg /opt/cluster-zk/zkone/conf/zoo.cfg ii:創(chuàng)建數(shù)據(jù)目錄mkdir /opt/cluster-zk/zkone/data iii:在數(shù)據(jù)目錄中創(chuàng)建編vim /opt/cluster-zk

36、/zkone/data/myidiv:編輯編,內容就是當前服務器實例的編號14更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網System.err.println( 藥不能停, 不能停 代表程序原本要執(zhí)行的業(yè)務邏輯功能+Thread.currentThread().getName();JavaEE 課程系列1v:配置 zoo.cfgdataDir=/opt/cluster-zk/zkone/dataclientPort=1000server.1=:1001:1002server.2=:2001:2002 server.3=

37、:3001:3002格式解釋:server.服務器實例編號=IP 地址:數(shù)據(jù)通信端:選舉端第 5 步:配置 zktwoi:把 zktwo 復制出來cp -r /opt/cluster-zk/zkone /opt/cluster-zk/zktwo ii:修改 myid 文件中編號值vim /opt/cluster-zk/zktwo/data/myid將 1 改成 2 iii:修改 zoo.cfgdataDir=/opt/cluster-zk/zktwo/data clientPort=2000第 6 步:配置 zkthreei:把 zkthree 復制出來cp -r /opt/

38、cluster-zk/zkone /opt/cluster-zk/zkthree ii:修改 myid 文件中編號值vim /opt/cluster-zk/zkthree/data/myid將 1 改成 3 iii:修改 zoo.cfgdataDir=/opt/cluster-zk/zkthree/dataclientPort=30008.3 創(chuàng)建操作服務器的可執(zhí)行腳本8.3.1 創(chuàng)建文件/opt/cluster-zk/start.sh/opt/cluster-zk/stop.sh/opt/cluster-zk/status.sh8.3.2 編輯啟動服務器命令/opt/cluster-zk/z

39、kone/bin/zkServer.sh start/opt/cluster-zk/zktwo/bin/zkServer.sh start15更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列/opt/cluster-zk/zkthree/bin/zkServer.sh start8.3.3 編輯停止服務器命令/opt/cluster-zk/zkone/bin/zkServer.sh stop/opt/cluster-zk/zktwo/bin/zkServer.sh stop/opt/cluster-zk/zkthree/bin/zkSe

40、rver.sh stop8.3.4 編輯查看服務器狀態(tài)命令/opt/cluster-zk/zkone/bin/zkServer.sh status/opt/cluster-zk/zktwo/bin/zkServer.sh status/opt/cluster-zk/zkthree/bin/zkServer.sh status8.3.5 給腳本文件設置可執(zhí)行權限chmod 755 /opt/cluster-zk/start.shchmod 755 /opt/cluster-zk/stop.shchmod 755 /opt/cluster-zk/status.sh8.3.6 執(zhí)行腳本/opt/cl

41、uster-zk/start.sh/opt/cluster-zk/stop.sh/opt/cluster-zk/status.sh8.3.7 客戶端登錄/opt/zookeeper-3.4.9/bin/zkCli.sh -server :1000/opt/zookeeper-3.4.9/bin/zkCli.sh -server :2000/opt/zookeeper-3.4.9/bin/zkCli.sh -server :30008.4 集群中服務器數(shù)量結論:一般來說,集群中服務器數(shù)量最好設置為單數(shù)。原則:集群中有超過一半的服務器正常工程,

42、則整個集群判斷為正常工作。對外提供服務時大致滿足預期。推導:共 2 實例:宕機 1 實例,剩下 1=2/2,沒有超過一半。死亡容忍度為 0。共 3 實例:宕機 1 實例,剩下 23/2,超過一半。死亡容忍度為 1。共 4 實例:宕機 1 實例,剩下 34/2,超過一半。死亡容忍度為 1。共 5 實例:宕機 2 實例,剩下 35/2,超過一半。死亡容忍度為 2。共 6 實例:宕機 2 實例,剩下 46/2,超過一半。死亡容忍度為 2。16更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列9 Dubbo 介紹9.1 RPCRemote Pro

43、cedure Call遠程過程調用9.2 Dubbo 架構Subscribe 訂閱;簽署;贊成器;監(jiān)控器Monitor17更多 Java 大數(shù)據(jù) 前端 python 人工智能資料下載,可訪問百度:尚硅谷官網JavaEE 課程系列9.3 Dubbo 在 Zookeeper 中注冊信息的結構10Dubbo 使用10.1創(chuàng)建 Common 工程group id:com.atguigu.dubbo artifact id:Pro20-dubbo-common package:jar10.2創(chuàng)建 Provider 工程group id:com.atguigu.dubbo artifact id:Pro21-dubbo-provide

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論