Spring Boot 入门(三)微服务之服务发现、Eureka Server
一、项目勾践microservice 下的pom文件 导入公共jar包
<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>
<groupId>com.nc.cloud</groupId>
<artifactId>microservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<distributionManagement>
<site>
<id>website</id>
<url>scp://webhost.company.com/www/website</url>
</site>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Dalston.SR1</spring-cloud.version>
</properties>
<modules>
<module>microservice-discovery</module>
</modules>
</project>
View Code microservice-discovery 服务发现导入server所需jar包
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.nc.cloud</groupId>
<artifactId>microservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>microservice-discovery</artifactId>
<name>microservice-discovery</name>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
</project>
View Code
二、配置Yml信息
application.yml定义多环境、application-prod.yml(生产环境)用于演示单点的服务中心、application-dev.yml (开发环境) 和 application-test.yml (测试环境) 用于在本地演示 Eureka Server的高可用
1.单点服务中心Yml配置
2.Spring boot 启动服务注册中心
启动工程后,访问:http://localhost:8760/ ,如下图。我们会发现此时还没有服务注册到Eureka上面。
三、EurekaServer 的高可用
1.修改host文件
Windows操作系统:C:\Windows\System32\drivers\etc\host
2.配置yml信息
3.分别启动 test环境 和dev环境的服务注册中心
启动后会抛出异常不必理会,是因为test环境下的Eureka尝试将自己注册到 dev环境下的Eureka中去,但是dev环境还没有启动所以抛出异常信息
这时候我们去启动 dev环境下的 Eureka
这时候在看控制台,发现不在抛出上面的异常信息
启动工程后,分别访问:localhost1、localhost2,如下图。我们会发现此时两个服务已经相互注册
关闭 localhost2 后发现 在localhost1中注册的 localhost2 成为了不可用服务
如果Eureka 注册中心是高可用的,那么在各个微服务中的配置只需要将 defaultZone 注册到 host1 和 host2 上即可
页:
[1]