Zookeeper Ephemeral結點使用心得

2021-09-24 18:54:59 字數 833 閱讀 6145

公司裡面在拿zookeeper做命名服務,通過使用zk,前端只需要根據指定的zk位址獲得相應的資源或服務的後端伺服器位址即可,而後端伺服器需要做的僅僅是將自己的位址註冊到zk上作為乙個ephemeral結點即可。(雖然是挺方便後端擴容,但是我個人不太建議直接上zk,否則開發成本會增加)

p.s.:ephemeral結點在apache zookeeper中是乙個臨時結點,這些結點只要建立它的結點session不掛,它就一直存在,當session中止了,結點也就刪除了。

問題:

在開發的時候遇到了乙個奇怪的問題,當某個後端快速重啟之後,該後端的結點資訊過一段時間後會被刪除,這樣就導致了後端服務永遠無法被前端訪問到。

原因:

查了資料後得知,如果在你的session中,ephemeral結點不是由你建立的,你的session就不會擁有該結點,所以當擁有該結點的session終止(expire)了,該結點也就銷毀了。那麼,如果不是你顯式的刪除該結點的話,就只能由zk幫你終止它,在會話超時之後zk就自動刪除結點。如果在會話還未超時的過程中(一般是30s),你重啟後端伺服器的話,就會導致我所說的情況。

解決方案:

apache提供了幾個patch,也有人提供了一些解決方案,均是顯式的終止session。但是後端伺服器掛了,顯式終止一般是沒用的。找到的這個方法是比較靠譜的,那就是在建立結點前,先刪除之前的結點:

1. try catch

6. zk.create(path, data, createmode.ephemeral)

使用HtmlParser使用心得

最近因工作的需要,需要檢查html那些不合理或則什麼沒有閉合。在網上找了很久都沒有找到比較合適的工具。於是句試著搞搞htmlparser。獲取html的 string getcontentfromurl string url content sb.tostring response.close re...

frameset 使用心得

欲明白本篇 html徹底剖析 之標記分類,請看 標記一覽 也請先明白圍堵標記與空標記的分別,請看 html概念 框架概念 謂框架便是網頁畫面分成幾個框窗,同時取得多個 url。只需要 即可,面所有框架標記需要放在乙個總起的 html 檔,這個檔案只記錄了該框架如何分割 不會顯示任何資料,所以不必放入...

Access使用心得

今天臨時用access做資料庫,長期用sql server開發習慣了,總結一下現在為止用到的比較大的差異,以後有新的再補了 1 返回字串長度 len s lenb s 前者返回字元數,後者返回位元組數,並且access中text型別字元統一為2位元組,與sql2000不同。2 join的使用 acc...