SpringCloud中eureka組件如何使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司主營儀征網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件開發(fā)公司,儀征h5成都微信小程序搭建,儀征網(wǎng)站營銷推廣歡迎儀征等地區(qū)企業(yè)咨詢
Eureka 是 Netflix 開發(fā)的,一個基于 REST 服務的,服務注冊與發(fā)現(xiàn)的組件
它主要包括兩個組件:Eureka Server 和 Eureka Client
Eureka Client:一個Java客戶端,用于簡化與 Eureka Server 的交互(通常就是微服務中的客戶端和服務端)
Eureka Server:提供服務注冊和發(fā)現(xiàn)的能力(通常就是微服務中的注冊中心)
工作結構圖:
各個微服務啟動時,會通過 Eureka Client 向 Eureka Server 注冊自己,Eureka Server 會存儲該服務的信息
也就是說,每個微服務的客戶端和服務端,都會注冊到 Eureka Server,這就衍生出了微服務相互識別的話題
同步:每個 Eureka Server 同時也是 Eureka Client(邏輯上的)
多個 Eureka Server 之間通過復制的方式完成服務注冊表的同步,形成 Eureka 的高可用
識別:Eureka Client 會緩存 Eureka Server 中的信息
即使所有 Eureka Server 節(jié)點都宕掉,服務消費者仍可使用緩存中的信息找到服務提供者(筆者已親測)
續(xù)約:微服務會周期性(默認30s)地向 Eureka Server 發(fā)送心跳以Renew(續(xù)約)信息(類似于heartbeat)
續(xù)期:Eureka Server 會定期(默認60s)執(zhí)行一次失效服務檢測功能
它會檢查超過一定時間(默認90s)沒有Renew的微服務,發(fā)現(xiàn)則會注銷該微服務節(jié)點
Spring Cloud 已經把 Eureka 集成在其子項目 Spring Cloud Netflix 里面
Eureka Server在springCloud集成
1.pom文件配置
<project xmlns="http://maven.apache.org/POM/4.0.0">
<dependencies>
<dependency><!--eureka-server注冊與發(fā)現(xiàn)依賴-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency><!--eureka-server安全管理依賴,例如用戶名,密碼登錄-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
2 yml配置文件
security: basic: enabled: true user: name: user password: password123 server: port: 8761 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://user:password123@localhost:8761/eureka
3.啟動類
package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
SpringCloud 集成Eureka client
1.pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>microservice-provider-user</artifactId> <packaging>jar</packaging> <name>microservice-provider-user</name> <description>Demo project for Spring Boot</description> <parent> <groupId>com.itmuch.cloud</groupId> <artifactId>microservice-spring-cloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.h3database</groupId> <artifactId>h3</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> </project>
<dependency><!--客戶端依賴-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency><!--運維監(jiān)控瀏覽器查看依賴-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.yml配置文件
server: port: 7900 spring: jpa: generate-ddl: false show-sql: true hibernate: ddl-auto: none datasource: platform: h3 schema: classpath:schema.sql data: classpath:data.sql application: name: microservice-provider-user logging: level: root: INFO org.hibernate: INFO org.hibernate.type.descriptor.sql.BasicBinder: TRACE org.hibernate.type.descriptor.sql.BasicExtractor: TRACE com.itmuch: DEBUG eureka: client: healthcheck: enabled: true serviceUrl: defaultZone: http://user:password123@localhost:8761/eureka instance: prefer-ip-address: true instance-id: ${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}} metadata-map: zone: ABC # eureka可以理解的元數(shù)據(jù) lilizhou: BBC # 不會影響客戶端行為 lease-renewal-interval-in-seconds: 5
3.啟動客戶端類
package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class MicroserviceSimpleProviderUserApplication { public static void main(String[] args) { SpringApplication.run(MicroserviceSimpleProviderUserApplication.class, args); } }
看完上述內容,你們掌握SpringCloud中eureka組件如何使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文名稱:SpringCloud中eureka組件如何使用
文章起源:http://jinyejixie.com/article16/gpejgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、網(wǎng)站建設、動態(tài)網(wǎng)站、云服務器、網(wǎng)站內鏈、
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)