spring cloud --1. 服务的注册与发现(Eureka)

此文章是看了方志朋老师的教材自己写的框架demo:

学习spring cloud推荐大家看下方志朋老师的史上最简单的 SpringCloud 教程 | 终章,地址如下:

   https://blog.csdn.net/forezp/article/details/70148833 

spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。

spring cloud基于springboot

 

 

 

一:服务的注册与发现(Eureka)

1.作用

Spring Cloud Netflix下Eureka是一个服务注册和发现模块。

Eureka:
1. 是纯正的 servlet 应用,需构建成war包部署
2. 使用了 Jersey 框架实现自身的 RESTful HTTP接口
3. peer之间的同步与服务的注册全部通过 HTTP 协议实现
4. 定时任务(发送心跳、定时清理过期服务、节点同步等)通过 JDK 自带的 Timer 实现
5. 内存缓存使用Google的guava包实现

 

 

2.代码实现(注册中心)

2.1创建一个maven项目:

spring cloud --1. 服务的注册与发现(Eureka)
spring cloud --1. 服务的注册与发现(Eureka)
spring cloud --1. 服务的注册与发现(Eureka)

2.2项目创建成功后,pom.xml添加

<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.immo</groupId>

  <artifactId>immo-eureka</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  

  <!-- spring boot 依赖包 -->

  <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.5.2.RELEASE</version>

        <relativePath/> 

   </parent>

   

   <!-- 编码和java版本 -->

   <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>1.7</java.version>

    </properties>

    

   <!-- spring cloud -->

   <dependencies>

   <dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka-server</artifactId>

<version>1.3.4.RELEASE</version>

</dependency>

   </dependencies>

   

</project>

2.3 编写启动类

src/main/java 下创建com.immo包,创建EurekaApplication.java:

spring cloud --1. 服务的注册与发现(Eureka)

打开EurekaApplication.java,编写启动类:

  @SpringBootApplication注解:相当于

@Configuration:用于定义一个配置类

@EnableAutoConfiguration :Spring Boot 会自动根据你jar 包的 依赖来自动配置项目。

@ComponentScan:告诉Spring 哪个packages 的用注解标识的类会 spring自动扫描并且装入bean 容器

 @EnableEurekaServer:声明是一个eureka的一个server

package com.immo;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

 

@SpringBootApplication

@EnableEurekaServer

public class EurekaApplication {

 public static void main(String[] args) {

        SpringApplication.run(EurekaApplication.class,args);

    }

}

2.4 编写配置文件

src/main/resources下创建application.properties 配置文件:

spring boot启动默认找该文件,或者appication.yml)

server.port=9000

eureka.instance.hostname=localhost

#表示是否将自己注册到Eureka

eureka.client.registerWithEureka=false

#是否从Eureka中获取注册信息

eureka.client.fetchRegistry=false

#指向另一个注册中心

eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

# 设为false,关闭自我保护

eureka.server.enable-self-preservation= true 

# 清理间隔(单位毫秒,默认是60*1000)

eureka.server.eviction-interval-timer-in-ms= 10000 

#心跳间隔时间,默认是30秒

eureka.server.instance.lease-renewal-interval-in-seconds= 10  

#最后一次心跳时间后leaseExpirationDurationInSeconds秒就认为是下线了,默认是90秒

eureka.server.instance.lease-expiration-duration-in-seconds= 30 

 

 

2.5 测试

执行EurekaApplication.javamain方法:

spring cloud --1. 服务的注册与发现(Eureka)

启动成功后,访问 http://localhost:9000/  进入eureka的管理界面(目前还没发布服务) :

spring cloud --1. 服务的注册与发现(Eureka)