註冊中心簡介

2021-10-05 05:48:41 字數 1825 閱讀 4861

###服務間呼叫問題?

存在問題待解決?

在這裡插入描述

註冊中心:

​ dubbo體系中的zookeeper

​ spring cloud中的eureka 和 consul

zookeeper定義

​ 分布式協調中介軟體

背景

​ google chubby 服務為了解決分布式一致性問題而出現。

​ 場景:google chubby 有個檔案系統(gfs),五個服務,需要選出乙個master server,其餘節點同意,如何達到一致性?

​ 原理:5個服務都向乙個主服務 google server 建立檔案並且寫入自己位址,保證只有乙個服務寫入成功,其他服務通過讀取這個檔案就能知道這個master server 已經選出。

​ 另乙個層面看:這種服務也是粗粒度的分布式鎖服務,建立檔案就相當於加鎖操作。

​ 然而google chubby並不開源,雅虎基於chubby 思想開發 類似的分布式 元件 zookeeper,後來捐獻給apache。

​ 所以zookeeper的出現不是為了 註冊中心而設計,是為了服務一致性、分布式鎖而設計,而註冊中心能實現的一種功能。

一致性問題

定義理解:分布式節點達到一致性:細粒度可理解投票(意見)一致性、資料同步一致等等。

本質:在分布式服務系統中,就某個提議達到一致

大名鼎鼎 paxos協議出現就是為了在不可信的 網路環境中,按照 paxos 這個協議就能夠針對某個提議達成一致。

zookeeper設計角色

​ leader:處理事務請求、排程者

​ follower:處理非事務請求、**事務請求 、參與投票

​ observer:與follower唯一區別的是不參與投票

分布式節點資料同步問題?

分布式事務問題?

​ 2pc提交、3p提交

leader選舉

​ 2n+1個服務組成、必須過半

zookeeper的安裝

單機安裝

解壓 tar -zxvf

cp conf/zoo_sample.cfg zoo.cfg

vi zoo.cfg 修改datadir日誌存放目錄

集群安裝(2n+1)

單機安裝3臺 準備好

修改zoo.cfg 埠

建datadir目錄,設定myid檔案 datadir/myid檔案,內容是對應的 server id

zoo.cfg檔案

server.1=ip1:2888:3888 【2888:訪問 zookeeper 的埠;3888:重新選舉 leader 的埠】 ser       server.2=ip2.2888:3888

ser ver.3=ip3.2888:2888新

myid檔案

1
相關命令

bin/zkserver.sh start

bin/zkserver.sh status

bin/zkserver.sh stop

bin/zkserver.sh restart

zkcli.sh -timeout 0 -r -server ip:port

Eureka 註冊中心

角色 1 服務提供者 2 服務消費者 3 服務註冊中心 a.高ha 支援資料持久化和服務集群 b.資料一致性問題,集群中的所有客戶應該看到同乙份資料不能出現讀寫資料不一致 c.資料變更主動推送,當註冊中心的資料發生變更時要及時通知客戶端 關鍵性功能設計 1 服務提供者在啟動時,向註冊中心註冊自己提供...

Dubbo zookeeper註冊中心

2.修改配置檔案 3.啟動zookeeper 經過上面的配置我們已經完成了zookeeper的修改,下面我們進入bin目錄執行zkserver.cmd 如果是linux伺服器則執行zkserver.sh 如下圖,我們已經啟動zookeeper 4.修改註冊中心 下面我們只需修改服務端和客戶端的註冊中...

Dubbo註冊中心

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!推薦使用zookeeper註冊中心,不需要啟動任何中心節點,只要廣播位址一樣,就可以互相發現 組播受網路結構限制,只適合小規模應用或開發階段使用。組播位址段 224.0.0.0 239.255.255.255 提供方啟動時廣播自己的位址。消費方啟動...