日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Curator selector

發布時間:2025/4/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Curator selector 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

zookeeper最經典的用法,選舉。Curator的實現有2個種:

LeaderLatch:

? ? ? ?這種是有阻塞的,就是大家一起上,誰先上了,就一直阻塞著,直到方法執行完成。如果執行結束,那么其他的兄弟就選一個出來。我覺得這種適合主備,比如開2 個 job,一個掛了另一個就上。

代碼,這種代碼最好是開2個eclipse看效果,順序打開,看效果,再領悟:

package?curator.selector;import?org.apache.curator.RetryPolicy; import?org.apache.curator.framework.CuratorFramework; import?org.apache.curator.framework.CuratorFrameworkFactory; import?org.apache.curator.framework.recipes.leader.LeaderLatch; import?org.apache.curator.retry.ExponentialBackoffRetry;public?class?LeaderLatchDemo?{public?static?void?main(String[]?args)?throws?Exception?{RetryPolicy?retryPolicy?=?new?ExponentialBackoffRetry(1000,?3);CuratorFramework?client?=?CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").sessionTimeoutMs(2000).connectionTimeoutMs(10000).retryPolicy(retryPolicy).namespace("text").build();client.start();//?選舉Leader?啟動LeaderLatch?latch?=?new?LeaderLatch(client,"/path");latch.start();latch.await();System.err.println("我啟動了");Thread.currentThread().sleep(1000000);latch.close();client.close();} }

?

LeaderSelector:

? ? ? 這種復雜一點,他有個leaderSelector.autoRequeue();就是自動搶,比如打印一個helloworld,第一個打印完,第2個打印,然后第3個打印。然后第一個再打印,大家一起搶。有點動態選舉的味道。

代碼:

package?curator.selector;import?org.apache.curator.RetryPolicy; import?org.apache.curator.framework.CuratorFramework; import?org.apache.curator.framework.CuratorFrameworkFactory; import?org.apache.curator.framework.recipes.leader.LeaderSelector; import?org.apache.curator.framework.recipes.leader.LeaderSelectorListenerAdapter; import?org.apache.curator.retry.ExponentialBackoffRetry;public?class?LeaderSelectorDemo?{public?static?void?main(String[]?args)?throws?Exception?{RetryPolicy?retryPolicy?=?new?ExponentialBackoffRetry(1000,?3);final?CuratorFramework?client?=?CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").sessionTimeoutMs(5000).connectionTimeoutMs(10000).retryPolicy(retryPolicy).namespace("text").build();client.start();final?LeaderSelector?leaderSelector?=?new?LeaderSelector(client,?"/led",?new?LeaderSelectorListenerAdapter(){@Overridepublic?void?takeLeadership(CuratorFramework?client)?throws?Exception?{System.err.println("work?ing...");Thread.currentThread().sleep(3000);System.err.println("end");}});leaderSelector.autoRequeue();leaderSelector.start();System.in.read();} }

?

?

?

轉載于:https://my.oschina.net/u/1378390/blog/297057

總結

以上是生活随笔為你收集整理的Curator selector的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。