xywuyiba6 发表于 2017-12-8 06:48:20

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]
查看完整版本: Spring Boot 入门(三)微服务之服务发现、Eureka Server