1、Spring Cloud

Spring Cloud是基于Spring Boot的用于管理Spring Boot创建的各个微服务应用,Spring Cloud使用erureka server注册中心管理分布式环境下的各个spring boot微服务,各个在Spring Cloud管理下的Spring boot应用就是需要注册的client,所有需要访问配置文件的应用都作为一个erureka client注册上去。

eureka是一个高可用组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送一个心跳,在默认情况下,一个eureka server也是一个client,必须要指定一个server.

2、创建一个注册中心即eureka server,

(1)创建一个maven工程EurekaServer,pom.xml文件如下

<?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"><modelVersion>4.0.0</modelVersion><groupId>com.hxr.erureka.server</groupId><artifactId>EurekaServer</artifactId><version>1.0-SNAPSHOT</version><!--maven特有用于拉一些默认基础jar包--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.RELEASE</version><relativePath/></parent><!--编码--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><!--eureka server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><!--spring boot test--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.RC1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>

(2)、适用spring boot创建一个EurekaServerApplication

package com.hxr.erureka.server;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/*** @Description:eurekaserver启动类* @Author:忘川、彼岸* @Date:上午9:59 2018/11/7*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {public static void main (String [] args){SpringApplication.run(EurekaServerApplication.class,args);}
}

(3)、在resources目录下创建EurekaServer配置文件application.yml(注:同级格式需相同)

server:port: 8761eureka:instance:hostname: localhostclient:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

(4)、启动EurekaServerApplication,访问地址:“http://localhost:8761/” 出现如下图(No instances available标识无client注册)

3、创建一个EurekaClient

(1)、创建一个maven工程EurekaClient,pom.xml文件如下

<?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"><modelVersion>4.0.0</modelVersion><groupId>com.hxr.eureka.client</groupId><artifactId>EurekaClient</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>     <!--开启健康检查依赖-->     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.RC1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories>
</project>

(2)、使用spring boot创建一个Eureka Client

package com.hxr.eureka.client;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Description:eurekaClient* @Author:忘川、彼岸* @Date:上午11:18 2018/11/8*/
@EnableEurekaClient
@SpringBootApplication
@RestController
public class EurekaClientApplication {public static void main(String [] args){SpringApplication.run(EurekaClientApplication.class,args);}@Value("${server.port}")String port;@RequestMapping("/")public String home(){return "eureka-client-test port is"+26;}
}

(3)在resources目录下创建EurekaClient配置文件application.yml

eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
server:port: 8762
spring:application:name: EurakaClient

(4)、启动EurekaClientApplication,访问地址:“http://localhost:8762/”

(5)、再次访问 http://localhost:8761/,已经将EurekaClient自动注册到server中

注:再次访问server时发现当服务注册后页面报:

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

以上提示说明Eureka进入了保护模式,保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)在开发过程中,我们常常希望Eureka Server能够迅速有效地踢出已关停的节点,但是由于Eureka自我保护模式,以及心跳周期长的原因,常常会遇到Eureka Server不踢出已关停的节点的问题。解决方法如下

1)第一种:EurekaServer端application.yml配置文件中关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔

server:port: 8761eureka:instance:hostname: localhostclient:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    #设为false,关闭自我保护enable-self-preservation: false#清理间隔(单位毫秒,默认是60*1000)eviction-interval-timer-in-ms: 4000

2)第二种:EurekaClient端application.yml配置文件中开启健康检查,并按需配置续约更新时间和到期时间

eureka:client:#开启健康检查(需要spring-boot-starter-actuator依赖)healthcheck:enabled: true     serviceUrl:       defaultZone: http://localhost:8761/eureka/instance:# 续约更新时间间隔(默认30秒)lease-expiration-duration-in-seconds: 30# 续约到期时间(默认90秒)lease-renewal-interval-in-seconds: 10

server:port: 8762
spring:application:      #服务与服务之间相互调用一般都是根据这个namename: EurakaClient

(更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置)

效果:

参考资料:

博客:https://www.cnblogs.com/chry/p/7248947.html

转载于:https://www.cnblogs.com/letheside/p/9889591.html

Spring Cloud 一:注册中心相关推荐

  1. 3.spring cloud + zookeeper注册中心 + Feign调用案例

    3.spring cloud + zookeeper注册中心 + Feign调用案例 3.1.pom.xml定义 <?xml version="1.0" encoding=& ...

  2. Spring Cloud 服务注册中心Eureka

    Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...

  3. Spring Cloud的注册中心和服务者,消费者的构建

    注册中心Eureka: 新建项目stu-eureka: StuEurekaApplication: package com.demo.stueureka;import org.springframew ...

  4. 【065】Spring Cloud服务注册中心双节点集群,使用Eureka实现,以IP方式配置,基于Spring Cloud的Camden SR5版本

    Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现.Eureka 采用了 C-S 的设计架构.Eureka Server 作为服务注册功能的服务器,它 ...

  5. Spring cloud nacos注册中心 seata分布式事务

    准备环境的软件 seata 官网地址为 Seata 是什么 基本介绍 ,一下是一些大企业在使用 下载资源 GitHub - seata/seata: Seata is an easy-to-use, ...

  6. Spring Cloud ---02-- Eureka注册中心

    Eureka 注册中心 作用:服务注册和发现 提供者(Provider) 向注册中心注册自己的地址 消费者(Consumer) 从注册中心发现其他服务 eureka的运行机制 注册 - 一次次反复连接 ...

  7. Spring Cloud -Eureka 注册中心配置

    Spring Cloud简介 1.简介 Spring Cloud是Spring旗下的项目之一,官网地址:http://projects.spring.io/spring-cloud/ Spring最擅 ...

  8. 什么是Vant? Spring Cloud Nacos注册中心

    文章目录 Vant 什么是Vant Vant的优势 Vant特性 第一个Vant程序 创建Vue项目 添加\安装Vant支持 添加Vant引用 按钮组件 表单页面 area省市区选择 商品列表 服务器 ...

  9. spring cloud Euraka注册中心实例Dalston

    1.介绍:注册中心eureka是spring cloud微服务架构的基石,所有服务比如网关.配置中心等等都需要依赖于网关服务.当然你也可以使用zokkeeper来替代.两者最主要区别是zk有leade ...

  10. 【Spring Cloud】注册中心-Nacos

    1.名字的由来 前四个字母分别为 Naming 和 Configuration 的前两个字母,最后的 s 为 service 2.是什么 Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和 ...

最新文章

  1. centos7中nfs文件系统的使用
  2. Microsoft Windows 10的LTSC 2019和Version 1809更新简单说明
  3. python【力扣LeetCode算法题库】22- 括号生成(DFS)
  4. python连接高斯数据库_Python加载数据并执行多高斯fi
  5. 格式化输出,运算符,编码,字符串(索引,切片,大小写转换等等)
  6. FPGA专有名词的积累
  7. 一个路由器两个网段互通_如何判断两个IP地址是否在同一个网段?什么是子网掩码?...
  8. Socket与拔掉网线
  9. hausaufgabe--python 11-List slice
  10. [Offer收割]编程练习赛48
  11. Java项目本地部署宝塔搭建实战-医院HIS系统源码
  12. java生成数据库三线表
  13. 摄像头设计工程师面试技巧_系统设计面试准备的5个技巧
  14. C#开发自动照片(图片)裁剪(缩放)工具
  15. 股票的内外盘(转贴收藏)
  16. 分数化成有限小数的方法_分数化小数的方法|小数化分数题目
  17. 银河麒麟操作系统以root用户登录的方法
  18. 02组团队项目-中期总结
  19. Python自动化需要培训吗
  20. [MachineLearning] 机器学习速成笔记 - Bilibili

热门文章

  1. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较
  2. C# LINQ to XML
  3. 关于Jquery中animate可以操作css样式属性总结
  4. ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)
  5. ReportViewer教程(12)-按组折叠
  6. .NET开发 程序员必备工具 -- Regulator:生成正则表达式工具
  7. leetcode —— 863. 二叉树中所有距离为 K 的结点
  8. 轨道运营管理专业自荐书_轨道运营管理专业主要是学习什么_毕业后薪资待遇怎么样...
  9. 输入三科成绩 C语言,c语言,编程,输入一名学生的语文、数学和英语三科成绩,计算并输出三门课程的总成绩...
  10. u盘安装linux 7.4,U盘自动化安装CentOS7.4