eureka学习笔记(一)-server端初始化和控制台简介

参考资料

Eureka控制台参数说明:https://www.cnblogs.com/linjiqin/p/10087462.html

前言

eureka作为springcloud框架的核心组成部分,主要分为server端和client端,本篇主要就eureka的一些基本概念进行讲解,同时完成server端的搭建,为接下来的源码学习做好准备。

服务搭建

gitee地址:https://gitee.com/zhengyh25/eureka-server.git
github地址:https://github.com/MrXiaoguai/eureka-server.git
因为网上已经有很多搭建教程了,这里就不进行赘述了,只对大致的搭建流程进行描述,并对一些常见问题进行解答。另外提供我搭建完成的项目地址,方便大家学习。

搭建环境

  1. 系统:macos 10.15.3
  2. jdk:1.8
  3. springboot:2.2.4.RELEASE
  4. 开发环境:idea2019.3.3

server端搭建

项目初始化

项目初始化:idea->create new project->选择Spring Initializr(选择jdk1.8,Service URL为default)->设置project Metadata(根据自己习惯设置即可)->引入依赖(Spring Cloud Discovery->Eureka Server)->自定义项目路径->finish。
初始化完成,进入项目,打开pom文件,我们可以看到项目自动添加了需要的依赖包。

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

至此,只需在springboot启动类上添加@EnableEurekaServer注释,即可按其默认配置启动一个单实例server。

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaApplication.class, args);
	}
}

Eureka Server控制台简介

启动EurekaApplication,我们可以进入server的注册中心页面,下面简单介绍以下注册中心的相关内容。

  1. System Status
    System Status
    Environment:环境,默认为test。该参数在实际生产中使用。
    Data center:数据中心。
    Current time:当前系统时间。
    Uptime:server已运行时间。
    Lease expiration enabled:是否启动租约到期。默认自我保护机制开启,为false。关闭自我保护机制,该值为true。
    Renews threshold:续约阈值,即每分钟server期待收到的client端的续约请求数。
    Renew (last min):上一分钟收到的client端的续约请求数。
  2. 红字提醒
    系统可能会出现三种红色加粗的字体提示:
    • RENEWALS ARE LESSER THAN THE THRESHOLD. THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
      原因:关闭了自我保护机制,并且续约实例少于阈值,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.

      原因:开启自我保护机制,server可能会记录一些已经下线了的client实例。
    • THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.
      原因:关闭了自我保护机制,提醒管理者server不再为因为网络问题没有续约的client提供保护。
  3. DS Replicas
    DS Replicas
    DS Replicas中是server的同伴(peer),即该server的相邻节点,根据配置eureka.client.service-url.defaultZone中的ip取值。集群中用到,单例中不使用。因为我们没有配置server属性,所以eureka.client.service-url.defaultZone默认为http://localhost:8761/eureka/。因此上图中显示为localhost。
  4. Instances currently registered with Eureka
    Instances currently registered with Eureka
    该部分为本server的注册表,用于记录注册到该服务的实例,application为应用名,一个应用可以有多个实例,记录于Availability Zones。
  5. General Info
    在这里插入图片描述
    本部分用于记录server的通用信息。
    total-avail-memory:总共可用内存大小。
    environment:环境名称。
    num-of-cpus:主机cpu核数。
    current-memory-usage:当前已用内存。
    server-uptime:服务已启动时间。
    registered-replicas:相邻集群复制节点,即配置的eureka.client.service-url.defaultZone。
    unavailable-replicas:不可用的集群复制节点,如何确定不可用? 主要是server1 向 peer节点发送接口查询自身的注册信息,如果查询不到,则默认为不可用,也就是说如果Eureka Server自身不作为客户端注册到上面去,则相邻节点都会显示为不可用。
    available-replicas:可用的相邻集群复制节点。
    注:有一种特殊情况暂时不知道原因,先记录下来。配置7901,7902,7903三个端口的server集群。启动时候,当7901的defaultZone: http://root:root@localhost:7902/eureka/,http://root:root@localhost:7903/eureka/时,其他节点同样使用localhost作为ip,各个实例都能互相注册,却都在unavailable-replicas中,这三个实例互相注册和同步注册信息都没有问题。只有将localhost改成hostname后才在available-replicas,这个会接下来的集群配置中提及。
  6. Instance Info
    Instance Info
    本部分为实例信息:
    ipAddr:server实例的ip地址
    status:server实例的状态
  7. LAST 1000 SINCE START UP
    LAST 1000 SINCE START UP
    Last 1000 cancelled leases:最后1000个取消的租约
    Last 1000 newly registered leases:最后1000个新注册的租约

总结

本章主要就service的初始化和控制台进行讲解,使用的是默认的当然我们也可以通过配置application.yml来修改server属性,同理适用于client端,下一章会就server单实例和集群配置,client端注册的实现进行讲解。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值