標籤:inf tps redis。 並且 技術 add html pen 沒有
etcd是一個K/V分布式儲存,每個節點都儲存完成的一份資料。有點類似redis。但是etcd不是資料庫。
1.先說廢話。之所以會用etcd,並不是實際項目需要,而是前面自己寫的上傳的DBCacheServer服務部署叢集的解決方案,想瞭解服務功能。可以閱讀前一篇博文,其實我就是想給大家提供一個查詢資料庫的服務,能夠簡化我們一些功能。
最開始我打算使用zokkeeper,因為使用廣泛,但是利用這一段學習時間,我在網上查閱了相關資料,採用了consul,因為開箱即用,什麼都是好的,並且單檔案很適合,我又不需要那麼複雜,簡單試了一把後放棄了。其餘不說,反正就是我只需要簡單的,不需要去填坑。最後我看了etcd。感覺合適,最後採用了它,簡單可用。如果有興趣的話建議看下《etcd技術內幕》這本書。
2.etcd使用
(1)以我整理的配置模板說明,更加詳細的要自己研究,先看圖
1.如果是單個節點,屏蔽掉自己的地址註解後的所有項
2.叢集部署的2種方式:(1).靜態部署,將所有節點都寫在initial-cluster項後面,然後啟動。必須全部啟動叢集才啟動
(2)etcd方式發現,需要有一個已經部署好的獨立叢集A,建立叢集B以A的一個節點建立一個發現URL:
註冊命令:curl -X PUT http://192.168.3.107:2379/v2/keys/discovery/cluster_DBCacheServer/size -d value=3 ,其中3是size的值,就是說明要建立的叢集B有3個節點,節點全部啟動叢集才能給啟動。v2/keys/discovery可以看做是一個固定值。其後是一個唯一標識,只要保持唯一即可,官網中的例子是一個16進位字串。然後將該地址填寫到discovery項後。
如果想採用此方式,必須先有A叢集,如果你只是為了註冊,可以採用靜態叢集部署一個單叢集節點。
(3)DNS發現請自己查閱官網說明
(4)擴充節點,官網文檔有說明,執行:etcdctl member add infra3 http://192.168.3.108:2380,然後啟動etcd.
3.etcd用戶端,官網查看,如果找不到就到處搜尋。
一個java用戶端支援V3的
<dependency>
<groupId>com.coreos</groupId>
<artifactId>jetcd-core</artifactId>
<version>0.0.2</version>
</dependency>
另外說說幾種叢集發現
1.比較https://www.cnblogs.com/fei33423/p/7996359.html
我就不詳細說了,很多程式員陷入了一個怪圈,一旦出現的幾種相同組件,總想比較出誰是最優先的。但是佛說存在即是合理的,我也相信佛說的。但是通過這次我的入坑。我想說當你不怎麼瞭解的時候,可以都去嘗試下。由於各自的業務不同,合適的就是最好的。如果說誰包含了誰,那就是誰給你比較全面而已。我開始就是採用的consul。最後拋棄了,主要是它全面但是對我沒有用,而且部署看起來不方便,還有一些原因讓我放棄而採用了etcd.封裝完整就意味靈活低,反正看自己使用。但是etcd實現了基本的分別儲存,分布式鎖。尤其是watch是相當重要的,很有擴充,而且可以監視,查詢子目錄。以最基礎的東西,自己的發揮空間就大。封裝完善的簡單使用,功能強大,只能說各有特點。大家自己仔細斟酌吧。euerka已經不開源了,小使用者就別用了。如果etcd能夠基本滿足你,建議使用。
---------------------
jason成都
來源:CSDN
原文:81903921?utm_source=copy
著作權聲明:本文為博主原創文章,轉載請附上博文連結!
etcd部署簡單說明