一: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>microservicecloudartifactId> <groupId>com.ligong.springcloudgroupId> <version>1.0-SNAPSHOTversion> parent> <modelVersion>4.0.0modelVersion> <artifactId>microservicecloud-eurekaartifactId> <dependencies> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-eureka-serverartifactId> <version>1.4.6.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>springloadedartifactId> <version>1.2.8.RELEASEversion> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-devtoolsartifactId> <version>2.1.4.RELEASEversion> 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.cloudgroupId> <artifactId>spring-cloud-starter-eurekaartifactId> <version>1.4.6.RELEASEversion> dependency> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-configartifactId> 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的整合基本完成