青柠开车Spring Cloud(三) —— Spring cloud Eureka
什么是Eureka

分三部分来说一下这个图:
- 首先:比方一个人,去警察局报案,举报某人有重大嫌疑。
- 然后:这时候民警就要根据报案人提供的信息,去信息平台查询公民信息,核实信息准确性,之后再进一步分析案情,制定下一步行动计划。
- 其次:在公民办理身份证的时候,会把信息注册到信息平台,或者每次人口普查也会跟新一部分信息。不光是公民的信息,办案民警的信息也必须在这个平台注册。
那么这个信息平台就相当于我们的Eureka
注册中心,业务模块呢,就是公民,民警就是zuul
我们的api网关了。
这里小伙伴们再想一下,如果没有这个信息平台,那么民警找一个人岂不是就像大海捞针一样困难吗!所以这也正体现了Eureka
注册中心在spring cloud中的地位,承载着所有服务的注册工作。
快速入门
创建spring boot项目
首先我们需要创建一个基于spring boot的多模块项目
pom.xml指定spring boot版本
<!-- 指定 spring boot 版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
引入spring cloud配置
<!-- 指定 spring cloud 版本 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
引入Eureka
依赖jar包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
application.properties
的配置
server.port= 8761
eureka.client.registerWithEureka= false
eureka.client.fetchRegistry= false
# 是否检索服务
eureka.client.fetch-registry=false
# 关闭注册中心的保护机制,否则无法及时发现下线的服务
eureka.server.enable-self-preservation=false
更多的Eureka
配置选项,请参阅EurekaInstanceConfigBean和EurekaClientConfigBean
@EnableEurekaServer
注解
/**
* @author : R&M www.qnloft.com/blog
* 2018/9/10 15:10
* spring-cloud
* org.qnloft.eureka
*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(EurekaApplication.class, args);
}
}
管理界面一览
现在我们启动项目,如果需要看我的项目源码,传送门在这里,打开浏览器,输入:http://127.0.0.1:8761,会出现如下界面
Eureka
管理界面共分四部分:
系统状态:可以展示运行环境、数据中心、系统时间、项目运行时长等信息
项目一览表:现在当前注册中心中注册的全部节点。点击项目ip地址或进入一个
http://ip:端口号/actuator/info
这个请求地址中。
eureka实例的状态页面和健康监控的url默认为spring boot actuator提供的/info端点和/health端点。我们必须确保Eureka客户端的/health端点在发送元数据的时候,是一个能够被注册中心访问到的地址 ,否则服务注册中心不会根据应用的健康检查来更改状态(仅当开启了healthcheck功能时,以该端点信息作为健康检查标准)。而如果/info端点不正确的话,会导致在Eureka面板中单击服务时,无法访问到服务实例提供的信息接口。
大多数情况下,我们不需要修改这个几个url配置。但是当应用不使用默认的上下文(context path或servlet path,比如配置server.servletPath=/test),或者管理终端路径(比如配置management.contextPath=/admin)时,我们需要修改健康检查和状态页的url地址信息。
application.yml
配置文件如下://下面配置为相对路径,也支持配置成绝对路径,例如需要支持https eureka.instance.health-check-url-path=${server.context-path}/health
eureka.instance.status-page-url-path=${server.context-path}/info一般信息:显示了内存占率、CPU占用、运行时间等信息
实例信息:部署服务器地址,服务状态
最后1000个启动:其实就是1000条注册信息日志