SpringCloud之——Eureka服务注册与发现

Eureka作为SpringCloud全家桶的注册中心,最常说到的问题就是他与zookeeper的区别是什么,我们都知道ACP(可用性、一致性、分区容错性),那么P是必须要保证的,而三者又不可能同时满足,那么在设计的时候就看各自产品的侧重点了,Eureka和Zookeeper两个都能够作为注册中心使用,他们的主要区别是zookeeper保证的是CP(一致性,分区容错性),而Eureka保证的是AP(可用性和分区容错性)!
废话说完了,直接看看怎么写一个Eureka吧!
同时附上我练习时搭建的一个简单的SpringCloud项目,其中包含了feign、swagger-ui、rabbitmq、redis、aop、定时任务、文件上传于下载、excel导出、多数据源配置等demo,该项目也包含了SpringCloud的常用组件:
下载链接://download.csdn.net/download/weixin_45417573/12104123
一、创建服务
Eureka是作为一个独立的服务存在的,所以首先我们要创建一个Eureka服务,也就是一个Springboot项目,这一部分就不做多的叙述,当然,作为微服务的一部分,自然也是作为项目的其中一个子服务存在!
二、添加依赖
这里要注意的是,Eureka服务需要添加EurekaServer依赖,其他服务也要添加EurekaClient的依赖
1、Servcer

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

2、Client

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

三、添加启动类注解
同样,这里有服务和客户端的区别
1、Server

@EnableEurekaServer

2、Client

@EnableEurekaClient

四、修改yml配置
这里依旧分为服务和客户端的区别
1、Server
这两个false至关重要,也是与client的主要区别

eureka:
  server:
  #关闭eureka的自我保护机制(开发阶段)
    enable-self-preservation: false
  instance:
    #prefer-ip-address: true #以IP地址注册到服务中心,相互注册使用IP地址
    hostname: eureka1 #以服务名注册到服务中心(集群之间互相区分)
    #最后一次心跳后间隔多久没有心跳认定服务不可用(一次心跳30秒)
    lease-expiration-duration-in-seconds: 60
  client:
    serviceUrl:
      defaultZone: http://localhost:8000/eureka
      #不将自己注册到eureka中
    register-with-eureka: false
    #不拉取注册信息
    fetch-registry: false

关于保护机制,简单的说是eureka会与服务之间有一个心跳检测机制,心跳默认30秒发送一次,如果60秒(我们自己配置的60秒,默认是90秒)收不到心跳反馈,eureka就会认为服务是不可用的,但是eureka并不认为服务是真的不可用了,所以也就不会删除其注册信息,而是将注册信息保护起来,有时候我们看到eureka页面上出现EMERGENCY!EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT.RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEGING EXPIRED JUST TO BE SAFE的红色警告就是这个原因,但是开发阶段由于频繁的重启服务可能导致保护机制的启用,可以暂时关闭保护机制!
2、Client

eureka:
  instance:
    prefer-ip-address: true #以IP地址注册到服务中心,相互注册使用IP地址
  client:
    serviceUrl:
      defaultZone: http://localhost:8000/eureka/

五、测试
首先启动eureka服务,然后启动其他的服务,启动后在浏览器中访问eureka服务看有没有如下网页,网页中如果有你注册的相关服务即可判断eureka是否正确:
在这里插入图片描述注意,访问的时候直接访问ip:端口,后面不要加eureka!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值