一: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的整合基本完成