服務註冊與發現 Eureka集群模式

2021-09-23 20:54:09 字數 3329 閱讀 5650

2.eureka許可權認證-額外的安全性

eureka單機模式下.我們可以看出.在分布式應用開發下.單機模式並不能適用於生產環境.

前言: 在使用eureka過程中.client會定時連線eureka server.獲取服務登錄檔中的資訊並快取到本地.微服務在消費遠端服務時總是先使用本地快取中的資料.那麼.即便是eureka server發生了宕機.也不會影響到服務之間的呼叫.但是如果某個微服務也出現了不可用的情況.eureka client中的快取將不會被更新.就會影響到服務的呼叫.甚至影響到了整個應用系統.於是.集群模式便應運而生

spring:

profiles:

active: server2

---spring:

profiles: server1

server:

port: 8761

eureka:

instance:

hostname: $

client:

register-with-eureka: true #是否將自己註冊要服務中心去,預設為true.

fetch-registry: true #表示是否從eureka server中獲取註冊資訊.預設為true

service-url:

defaultzone: http://server2:8762/eureka/ #查詢服務和註冊服務都需要依賴這個位址.預設是http://localhost:8761/eureka,多個位址使用,分隔

---spring:

profiles: server2

server:

port: 8762

eureka:

instance:

hostname: $

client:

register-with-eureka: true #是否將自己註冊要服務中心去,預設為true.

fetch-registry: true #表示是否從eureka server中獲取註冊資訊.預設為true

service-url:

defaultzone: http://server1:8761/eureka/ #查詢服務和註冊服務都需要依賴這個位址.預設是http://localhost:8761/eureka,多個位址使用,分隔

注:在server1中,我將defaultzone修改為server2的位址.server2的defaultzone修改為server1.使得兩個server之間相互註冊複製

2.配置hosts檔案.增加主機名稱

同時修改我們系統的host檔案,我用的是win7,在c:\windows\system32\drivers\etc\中

#在最底下插入.如果已存在127.0.0.1的話.只需要在後面追加server1 server2即可

127.0.0.1 server1 server2

3.分別打包server1和server2,各自啟動.第乙個啟動的jar將會丟擲cannot execute request on any known server異常.這個是因為eureka要相互註冊.而第一位啟動的jar因為沒有可以正常返回響應的服務.

server:

port: 8080

spring:

name: micro-provider-user #指定註冊到eureka server上的應用名稱

prefer-ip-address: true #表示將自己的ip位址註冊到eureka server.如果不設定改屬性.或將該屬性設定為false,則表示註冊微服務所在作業系統的hostname到eureka server

我這裡的defaultzone只向server1的eureka server註冊了.而兩個eureka server的首頁都出現了.這就是相互集群模式下的複製了…這裡我們也可寫上所有的eureka server的位址.用,隔開即可

1.這裡需要通過spring-security來實現.首先引入spring-boot-starter-security依賴

org.springframework.boot

spring-boot-starter-security

2.重啟eureka server.訪問localhost:8762/如圖可見

因為security的密碼預設是隨機生成的.需要我們手動配置使用者名稱和密碼

security:

user:

name: user #自定義的使用者民

password: root #自定義的密碼

3.因為我們eureka server增加了許可權認證.那麼我們的client向服務進行註冊的時候.defaultzone就不能再和之前一樣了.我們需要把使用者和密碼新增到我們的defaultzone上去,如下所示.

defaultzone: http://user:root@localhost:8762/eureka/
改完之後問題又來了…我的微服務死活註冊不上eureka server.網上說要開啟security.bisic.enable.但是新版的security裡面已經禁用這個配置了…不慌.問題不大.新增乙個securityconfig類,繼承securityconfigureradapter,重寫configure方法.開啟這個配置

@configuration

public class securityconfig extends websecurityconfigureradapter

}

@configuration

public class securityconfig extends websecurityconfigureradapter

}

.重啟eureka和微服務.控制台輸出,嗯.註冊成功了.

Eureka服務註冊與發現

註冊eureka的服務非常的簡單,只需要引入spring cloud starter netflix eureka client的jar包即可。org.springframework.cloud spring cloud starter netflix eureka client server po...

EureKa 服務註冊與發現

eureka資訊共享乙份登錄檔,至少乙個伺服器存在就可正常執行 三點注意 1.eureka server 支援跨機房的高可用,不同區域伺服器可以相互註冊,同一區域伺服器也可以兩兩註冊來達到高可用,至少乙個伺服器存在就可正常執行。2.eureka server 資料一致性級別是最終一致性,他相比強一致...

Eureka服務註冊與發現

eureka基礎知識 1.什麼是服務治理?springcloud 封裝了netflix 公司開發的eureka模組來實現服務治理。在傳統的rpc 遠端呼叫框架中,管理每個服務與服務之間依賴關係比較複雜,管理比較複雜,所以需要使用服務治理,管理服務與服務之間依賴關係,可以實現服務呼叫 負載均衡 容錯等...