Spring-Cloud之Eureka注册中心环境搭建(单节点)
一 Eureka概述
- 服务启动时会生成服务的基本信息对象InstanceInfo,然后在启动时会register到服务治理中心。
- 注册完成后会从服务治理中心拉取所有的服务信息,缓存在本地。 之后服务会被30s(可配置)发送一个心跳信息,续约服务。
- 如果服务治理中心在90s内没有收到一个服务的续约,就会认为服务已经挂了,会把服务注册信息删掉。
- 服务停止前,服务会主动发送一个停止请求,服务治理中心会删除这个服务的信息。
- 如果Eureka Server收到的心跳包不足正常值的85%(可配置)就会进入自我保护模式,在这种模式下,Eureka Server不会删除任何服务信息。
二 Eureka架构图
在这里插入图片描述
Registery:表示服务向注册中心注册。
Renew:表示服务向注册中心发送心跳,表示该服务还活着,注册中心不能删除改服务。
Cancel:表示注册中心能删除该服务
Get Registery:表示该服务重新注册
Replicate:表示注册中心之间相互注册
Remote Call:表示远程调用
三 搭建Eureka环境
- 创建SpringBoot项目
在这里插入图片描述 - 删除多余的目录(src等目录,因为创建maven的聚合工程需要)只剩下pom文件,名字叫做eureka-father作为聚合工程的父级工程,如图
在这里插入图片描述 - pom文件的内容如下:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <!--基本信息--> <description>SpringBoot-Eureka环境搭建多模块构建示例</description> <modelVersion>4.0.0</modelVersion> <name>eureka-father</name> <packaging>pom</packaging>
<!-- 项目说明:这里作为聚合工程的父工程 --> <groupId>com.org.ldc</groupId> <artifactId>eureka-father</artifactId> <version>1.0.0.RELEASE</version>
<!-- 继承说明:这里继承SpringBoot提供的父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> </parent> <!-- 表示子模块 --> <modules> <module>eureka3000</module> </modules> <!-- 子模块的依赖 --> <dependencyManagement> <dependencies> <dependency> <groupId>com.org.ldc</groupId> <artifactId>eureka3000</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </dependencyManagement></project>
- 创建子模块eureka3000,方法如图所示
在这里插入图片描述 - 子模块的pom文件内容如下:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.org.ldc</groupId> <artifactId>eureka3000</artifactId> <version>0.0.1-SNAPSHOT</version> <name>eureka3000</name> <description>Demo project for Spring Boot</description>
<properties> <java.version>1.8</java.version> </properties>
<!-- 继承本项目的父工程 --> <parent> <groupId>com.org.ldc</groupId> <artifactId>eureka-father</artifactId> <version>1.0.0.RELEASE</version> </parent>
<!--引入eurekaserver 依赖--> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.SR2</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>
</project>
- 子模块的启动类如下:这里需要注意的就是要在类上加上@EnableEurekaServer注解
package com.org.ldc.eureka3000;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication@EnableEurekaServerpublic class Eureka3000Application { public static void main(String[] args) { SpringApplication.run(Eureka3000Application.class, args); }}
- 子模块的application.properties文件的内容如下:
server: port: 3000eureka: server: enable-self-preservation: false #关闭自我保护机制 eviction-interval-timer-in-ms: 4000 #设置清理间隔(单位:毫秒 默认是60*1000) instance: hostname: localhost client: registerWithEureka: false #不把自己作为一个客户端注册到自己身上 fetchRegistry: false #不需要从服务端获取注册信息(因为在这里自己就是服务端,而且已经禁用自己注册了) serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
- 以上创建的表示一个eureka节点,启动子模块的启动类,然后浏览器访问http://localhost:3000,就会出现如下页面,红色框内一开始使没有内容的,因为我这是搭建的有三个节点eureka和有注册服务的服务工程,所以红色框内会出现内容,所以搭建不要纠结这个,只要出现这个界面,就说明eureka环境搭建好了,但是使单节点的,不是集群的
在这里插入图片描述
接着创建服务模块,创建过程和创建子模块一样,不再赘述,名字叫做user5000,如图eureka3001、eureka3001是我创建的另外的两个注册中心节点
在这里插入图片描述 - 服务模块的pom文件内容如下:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.org.ldc</groupId> <artifactId>user5000</artifactId> <version>0.0.1-SNAPSHOT</version> <name>user5000</name> <description>Demo project for Spring Boot</description>
<properties> <java.version>1.8</java.version> </properties>
<!-- 继承本项目的父工程 --> <parent> <groupId>com.org.ldc</groupId> <artifactId>eureka-father</artifactId> <version>1.0.0.RELEASE</version> </parent>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.SR2</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>
</project>
- application.yml文件内容如下:
server: port: 5000eureka: client: serviceUrl: defaultZone: http://localhost:3000/eureka/ #eureka服务端提供的注册地址 参考服务端配置的这个路径 instance: instance-id: user-1 #此实例注册到eureka服务端的唯一的实例ID prefer-ip-address: true #是否显示IP地址 leaseRenewalIntervalInSeconds: 10 #eureka客户需要多长时间发送心跳给eureka服务器,表明它仍然活着,默认为30 秒 (与下面配置的单位都是秒) leaseExpirationDurationInSeconds: 30 #Eureka服务器在接收到实例的最后一次发出的心跳后,需要等待多久才可以将此实例删除,默认为90秒spring: application: name: server-user #此实例注册到eureka服务端的name
- 启动类如下:需要加上@EnableEurekaClient 注解
package com.org.ldc.user5000;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication@EnableEurekaClient //开启eureka客户端public class User5000Application { public static void main(String[] args) { SpringApplication.run(User5000Application.class, args); }
}
- 最后测试先启动注册中心的启动类,然后启动服务模块的启动类,最后访问localhost:3000出现如下图说明搭建成功
在这里插入图片描述
更多的教程请关注公众号 非科班的科班,。假如你觉得我写的好,路过的请点个赞,谢谢。
Spring-Cloud之Eureka注册中心环境搭建(单节点)的更多相关文章
- 如何优化Spring Cloud微服务注册中心架构?
作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...
- Spring Cloud Eureka注册中心(快速搭建)
Spring Cloud 详解Eureka注册中心@(微服务)[java|spring-cloud|eureka] Eureka 注册中心是入门Spring Cloud微服务架构的必学组件,是学习所有 ...
- Spring Cloud之服务注册中心搭建Eureka Server服务注册中⼼
Spring Cloud并不与Spring MVC类似是一个开源框架,而是一组解决问题的规范(个人理解).解决哪些问题呢?如下: 1)服务管理:⾃动注册与发现.状态监管 2)服务负载均衡 3)熔断 4 ...
- spring cloud(二)服务(注册)中心Eureka
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...
- Spring Cloud--搭建Eureka注册中心服务
使用RestTemplate远程调用服务的弊端: Eureka注册中心: Eureka原理: 搭建Eureka服务 引pom 启动类: 启动类上要加上@EnableEurekaServer注解: 配置 ...
- Spring Cloud Alibaba (nacos 注册中心搭建)
[nacos下载地址](https://github.com/alibaba/nacos/releases) ### 什么是 Nacos? - nacos主要起到俩个作用一个是注册中心,另外一个是配置 ...
- Spring Cloud 之服务注册中心高可用
服务注册中心高可用 服务注册中心 eureka-server 高可用实施 版本 Spring Boot 版本 # Spring Boot 版本: <parent> <groupId& ...
- spring cloud(服务注册中心及服务提供者——初学一)
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...
- Eureka 注册中心 简单搭建
直接上代码:配置文件截图 server.port= spring.application.name=eureka-server eureka.instance.hostname=127.0.0.1 # ...
随机推荐
- jdbc的URL配置
Microsoft SQL ServerMicrosoft SQL Server JDBC Driver (一般用来连接 SQLServer 2000)驱动程序包名:msbase.jar mssqls ...
- read、write 与recv、send区别 gethostname
recv相对于read有什么区别呢? 其实它跟read函数功能一样,都可以从套接口缓冲区sockfd中取数据到buf,但是recv仅仅只能够用于套接口IO,并不能用于文件IO以及其它的IO,而read ...
- JMeter录制登录测试
本节试图解释使用任何公开可用的网站记录登录测试的确切步骤,该网站提供具有登录凭据的可靠登录页面. 出于测试目的,我们将使用OrangeHRM在URL- http://opensource.demo.o ...
- JAVA8学习——深入浅出Lambda表达式(学习过程)
JAVA8学习--深入浅出Lambda表达式(学习过程) lambda表达式: 我们为什么要用lambda表达式 在JAVA中,我们无法将函数作为参数传递给一个方法,也无法声明返回一个函数的方法. 在 ...
- Visio图表应用
两种方式创建 插入图表之后通过设计面板的更改图表类型进行更改 双击图表进入编辑状态. 组合其中组合图的利用 下面是图表编辑操作: 双击进入图表之后下方会有“Chart1”跟“Sheet1”两个板块 而 ...
- Python实现截图功能
Python实现截图功能 Windows环境下需要用到PIL库,使用pip安装PIL库: pip install Pillow 安装完成,截图方法代码: from PIL import ImageGr ...
- ELK学习实验007:Nginx的日志分析系统之Metribeat配置
一 Metricbeat 简介 1.1 系统级监控,更简洁将 Metricbeat 部署到您的所有 Linux.Windows 和 Mac 主机,并将它连接到 Elasticsearch 就大功告成了 ...
- DEVOPS技术实践_19:Pipeline的多参数json调用
在上一篇学习了把参数写进Json文件,然后通过去Json文件,调用参数的方法 1. 三元运算符介绍 调用的方法是通过一个三元运算符实现的 gender = prop.GENDER? prop.GEND ...
- jetbrains全家桶 你懂得
这个是松哥说的引用一下: 昨天一直在忙,中午抽空瞅了一眼技术群,天呐,竟然都在切磋 IDEA 激活码的事情,瞬间明白可能 jetbrains 又在搞事情了. 我大概了解了下,这次出事的主要是 2019 ...
- 理解 RESTful API 设计规范
RESTful是目前最流行的API设计规范,它是用于Web数据接口的设计.从字面可以看出,他是Rest式的接口,所以我们先了解下什么是Rest. REST与技术无关,它代表的是一种软件架构风格,RES ...