SpringCloud技术整理(一)微服务治理Eureka

SpringCloud技术整理(一)微服务治理Eureka

项目地址:

http://gitlab.zack.net.cn/root/springcloudexample

##########################################################

创建SpringCloudExample项目

项目作为父工程存在, pom文件打包为pom

  • 项目pom文件引入springboot父依赖
	<packaging>pom</packaging>
	<name>SpringCloudExample</name>

	<!--parent-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/>
	</parent>

	<!--字符集UTF-8, JDK版本1.8-->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<!--springCloud的版本-->
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.SR3</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!--web版本-->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-web</artifactId>
				<version>2.0.3.RELEASE</version>
			</dependency>
			<!--eureka server版本-->
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
				<version>2.0.3.RELEASE</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

######################################################

在SpringCloudExample项目下创建Example_Eureka1模块

  • 编辑Example_Eureka1模块的pom文件

引入eureka server依赖

<!--jar包-->
    <packaging>jar</packaging>

    <dependencies>
        <!--引入eureka server依赖, 父工程pom文件已声明eureka server版本-->
	<!--eureka server已经包含了web依赖, 无需再引入-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
  • 编写Example_Eureka1模块的启动类
package cn.zack;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * @author zack
 * 开启eureka server
 */
@SpringBootApplication
@EnableEurekaServer
public class Example_Eureka1_Application {
    public static void main(String[] args) {
        SpringApplication.run(Example_Eureka1_Application.class, args);
    }
}
  • 编辑Example_Eureka1模块的配置文件
server:
  port: 8761

spring:
  application:
    name: eureka-server
eureka:
  instance:
    # 当前实例的主机名
    hostname: eureka1
  server:
    # 关闭注册中心的自我保护机制
    enable-self-preservation: false
    # 服务续约时间(扫描失效服务的时间间隔)
    eviction-interval-timer-in-ms: 5000

  client:
    # 是否将自身注册到eureka server(默认为true)
    register-with-eureka: true
    # 是否从eureka server获取注册信息(默认为true),单机版eureka不需要同步其他eureka server的信息
    fetch-registry: true
    # eureka server交互地址,查询和注册服务都需要依赖这个地址,多个地址间使用,分割
    service-url:
      # 自身eureka server的注册地址
      defaultZone: http://localhost:8761/eureka/
  • 启动Example_Eureka1, 访问localhost:8761

eureka server 正常启动, eureka server本身也注册到了服务列表作为一个服务, 从控制台可以看到这个注册到eureka server的实例每5秒向注册中心发送一次心跳包.
image.png
image.png