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

springCloud workingTime 100℃ 0评论

项目源码github地址

什么是Eureka

分三部分来说一下这个图:

  • 首先:比方一个人,去警察局报案,举报某人有重大嫌疑。
  • 然后:这时候民警就要根据报案人提供的信息,去信息平台查询公民信息,核实信息准确性,之后再进一步分析案情,制定下一步行动计划。
  • 其次:在公民办理身份证的时候,会把信息注册到信息平台,或者每次人口普查也会跟新一部分信息。不光是公民的信息,办案民警的信息也必须在这个平台注册。

那么这个信息平台就相当于我们的Eureka注册中心,业务模块呢,就是公民,民警就是zuul我们的api网关了。
这里小伙伴们再想一下,如果没有这个信息平台,那么民警找一个人岂不是就像大海捞针一样困难吗!所以这也正体现了Eureka注册中心在spring cloud中的地位,承载着所有服务的注册工作。

快速入门

官方github demo
官方文档

创建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配置选项,请参阅EurekaInstanceConfigBeanEurekaClientConfigBean

@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条注册信息日志

转载请注明:R&M » 青柠开车Spring Cloud(三) —— Spring cloud Eureka

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

联系我:rm@rmworking.com