javascript
Spring-Cloud组件:eureka
eureka是什么?
?eureka是Netflix的子模塊之一,也是一個核心的模塊,eureka里有2個組件,一個是EurekaServer(一個獨立的項目) 這個是用于定位服務以實現中間層服務器的負載平衡和故障轉移,另一個便是EurekaClient(我們的微服務) 它是用于與Server交互的,可以使得交互變得非常簡單:只需要通過服務標識符即可拿到服務。
與spring-cloud的關系:
Spring Cloud 封裝了 Netflix 公司開發的 Eureka 模塊來實現服務注冊和發現(可以對比Zookeeper)。
Eureka 采用了 C-S 的設計架構。Eureka Server 作為服務注冊功能的服務器,它是服務注冊中心。
而系統中的其他微服務,使用 Eureka 的客戶端連接到 Eureka Server并維持心跳連接。這樣系統的維護人員就可以通過 Eureka Server 來監控系統中各個微服務是否正常運行。SpringCloud 的一些其他模塊(比如Zuul)就可以通過 Eureka Server 來發現系統中的其他微服務,并執行相關的邏輯。
角色關系圖:
如何使用?
在spring-cloud項目里面加入依賴
?eureka客戶端:
<dependency>
??????????? <groupId>org.springframework.cloud</groupId>
??????????? <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
??????? </dependency>
? eureka服務端:
?????? <dependency>
??????????? <groupId>org.springframework.cloud</groupId>
??????????? <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
??????? </dependency>
eureka服務端項目里面加入以下配置:
erver:
? port: 3000
eureka:
? server:
??? enable-self-preservation: false? #關閉自我保護機制
??? eviction-interval-timer-in-ms: 4000 #設置清理間隔(單位:毫秒 默認是60*1000)
? instance:
??? hostname: localhost
client:
??? registerWithEureka: false #不把自己作為一個客戶端注冊到自己身上
??? fetchRegistry: false? #不需要從服務端獲取注冊信息(因為在這里自己就是服務端,而且已經禁用自己注冊了)
??? serviceUrl:
????? defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
當然,不是全部必要的,這里只是把我這里的配置copy過來了
然后在spring-boot啟動項目上 加入注解:@EnableEurekaServer 就可以啟動項目了
@EnableEurekaServer @SpringBootApplication public class AppEureka {public static void main(String[] args) {SpringApplication.run(AppEureka.class);} }如果看見這個圖片,那么說明你就搭建好了:
這個警告只是說你把他的自我保護機制關閉了
eureka客戶端配置:
server:
? port: 6000
eureka:
? client:
??? serviceUrl:
??????? defaultZone: http://localhost:3000/eureka/? #eureka服務端提供的注冊地址 參考服務端配置的這個路徑
? instance:
? ?
??? instance-id: power-1 #此實例注冊到eureka服務端的唯一的實例ID
??? prefer-ip-address: true #是否顯示IP地址
??? leaseRenewalIntervalInSeconds: 10 #eureka客戶需要多長時間發送心跳給eureka服務器,表明它仍然活著,默認為30 秒 (與下面配置的單位都是秒)
??? leaseExpirationDurationInSeconds: 30 #Eureka服務器在接收到實例的最后一次發出的心跳后,需要等待多久才可以將此實例刪除,默認為90秒
spring:
? application:
??? name: server-power #此實例注冊到eureka服務端的name
然后在客戶端的spring-boot啟動項目上 加入注解:@EnableEurekaClient 就可以啟動項目了 這里就不截圖了我們直接來看效果圖:
這里我們能看見 名字叫server-power的(圖中將其大寫了) id為 power-1的服務 注冊到我們的Eureka上面來了 至此,一個簡單的eureka已經搭建好了。
?
總結
以上是生活随笔為你收集整理的Spring-Cloud组件:eureka的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务一定要使用Spring-Cloud
- 下一篇: Spring中的Events