一:eureka簡介
1.eureka遵守cap原則里的AP原則,即高可用和分區容錯性
CAP原則又稱CAP定理,指的是在一個分布式系統中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可兼得
2.eureka的地位
Eureka 模塊來實現服務注冊和發現,Eureka Server作為服務的注冊中心,其他微服務通過Eureka client 連接到 Eureka Server並維持心跳連接
3. eureka的角色
3.1 eureka server提供服務注冊和發現
3.2 Service Provider 服務提供方將自身服務注冊進入eureka,從而使consumer能夠通過eureka找到
3.3 Service Consumer服務消費方從Eureka獲取注冊服務列表,從而能夠消費服務
二: 整合eureka
前提: 基於 https://www.cnblogs.com/zhanyifan/p/10693869.html 的基礎環境進行整合eureka
1. 創建maven module ---- microservicecloud-eureka-7001
1.1 修改pom
注意: 這里的eureka server端采用 spring-cloud-starter-eureka-server 而非 spring-cloud-starter-netflix-eureka-server,本人采用spring-cloud-starter-netflix-eureka-server 進行eureka server進行注冊時候,client 端無法注冊進eureka
<?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"> <parent> <artifactId>microservicecloud</artifactId> <groupId>com.ligong.springcloud</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>microservicecloud-eureka</artifactId> <dependencies> <!--eureka-server服務端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--<dependency>--> <!--<groupId>org.springframework.cloud</groupId>--> <!--<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>--> <!--</dependency>--> <!--熱部署--> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>2.1.4.RELEASE</version> </dependency> </dependencies> </project>
1.2 修改application.yml
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka 服務端的實例名稱 這里進行了主機映射,為了是方便后面的eureka集群配置
client:
register-with-eureka: false # false表示不向注冊中心注冊自己
fetch-registry: false #false 表示自己端就是注冊中心,我的職責是維護服務實例,並不需要去檢索服務
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #設置與Eureka Server交互的地址查詢服務和注冊服務都需要依賴這個地址
1.3 添加SpringBoot 主啟動類
@SpringBootApplication @EnableEurekaServer public class EurekaService7001App { public static void main(String[] args) { SpringApplication.run(EurekaService7001App.class,args); } }
1.4 啟動EurekaService7001App, 並訪問eureka7001.com:7001

如果能看到此頁面,說明eureka搭建成功,這里我已經搭建完畢了eureka集群,已經微服務的注冊,所以能看到的信息會多些,剛做到這步的時候 installces currently registered with eureka下應該為No application available
2.修改provider module
2.1 修改pom
新增以下依賴,注意不是spring-cloud-starter-eureka-server 是 spring-cloud-starter-eureka 沒有-server
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.4.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
2.2 修改application.yml
新增以下內容
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
2.3 在主啟動類上添加@EnableEurekaClient 注解
@SpringBootApplication @EnableEurekaClient public class DeptProvider8080App { public static void main(String[] args) { SpringApplication.run(DeptProvider8080App.class,args); } }
2.4 測試
2.4.1 先啟動eureka,
2.4.2 再啟動provider微服務

如果在eureka的進程中出現這句話,說明服務注冊成功。
你也可以到eureka7001.com:7001上查看,會出現

說明服務注冊成功,至此,eureka的整合基本完成
