eureka 用以服务发现、服务注册,比较流行的有consul(后面再介绍)html
eureka介绍:spring
eureka为netflix开源软件,分为三个部分:后端
eureka服务:用以提供服务注册、发现,已一个war的形式提供 网络
eureka-server: 相对client端的服务端,为客户端提供服务,一般状况下为一个集群app
eureka-client:客户端,经过向eureka服务
发现注册的可用的eureka-server,向后端发送请求测试
spring cloud eureka
分为两部分字体
为了更好的演示服务端与客户端,我采用两个项目进行对比演示,先建立服务端在建立客户端:(不要急,一步一步来)code
第一步:建立spingboot2.0的项目,项目的pom文件以下:springcloud版本介绍server
第二步:在启动类上添加注解:@EnableEurekaServer 让enreka生效htm
第三步:配置文件:application.yml
第四步:启动测试:
注意:我把registerWithEureka改成true,再看一下:
到这,服务端的我基本介绍完了,注意点我也写出来了,下面咱们一块儿看客户端:
第一步:引入pom文件:
第二步:添加客户端注解:@EnableEurekaClient
第三步:配置文件(重要,往那个注册中心注册服务就在这配置)
第四步:写个接口测试一下:
第五步:启动服务端和客户端便可:
测试客户端接口:
到这客户端与服务端都演示完了
1>上面演示过程当中我是先启动服务端再启动客户端,演示正常,那若是我先启动客户端,在启动服务端会怎样呢? ----这是会报错的,以下:
这是由于客户端在启动时就会向注册服务端发送心跳,可是此时服务端没启动,因此会报找不到服务端,等到服务端启动这个错就会消失。
2>客户端中止,会当即从服务端消失吗?
不会的,在下一个心跳到达以前不会消失 默认是一分钟
eureka.server.evictionIntervalTimerInMs=5000 可是能够在配置文件中设置,驱除下线的时间
3>红字提醒
系统在三种状况下会出现红色加粗的字体提示:
1.在配置上,自我保护机制关闭
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.
2.自我保护机制开启了
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.
3.在配置上,自我保护机制关闭了,可是一分钟内的续约数没有达到85% , 可能发生了网络分区,会有以下提示
THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.