注册中心:
1.首先创建注册中心添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.配置注册中心配置文件
server:
port: 8085 #服务注册中心端口号
eureka:
instance:
prefer-ip-address: true
hostname: localhost #服务注册中心IP地址
client:
registerWithEureka: false #是否向服务注册中心注册自己
fetchRegistry: false #是否检索服务
serviceUrl: #服务注册中心的配置内容,指定服务注册中心的位置
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eureka-server
security:
user:
name: root
password: root
3.启动注册中心
到这里注册中心就配置成功了,接下来配置客户端,这里的客户端指的是提供服务的,要跟调用的客户端区分开
客户端:
1.首先创建客户端添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.配置客户端配置文件
server:
port: 8086 #服务端口号
eureka:
instance:
prefer-ip-address: true
client:
register-with-eureka: true
fetch-registry: true
service-url: #注册中心的注册地址
defaultZone: http://localhost:8085/eureka/
spring:
application:
name: service-provider #服务名称--调用的时候根据名称来调用该服务的方法
security:
user:
name: root
password: root
接下来启动,打开http://localhost:8085,查看是否注册成功,下面是注册成功的画面,Instances currently registered with Eureka下面是注册成功的客户端
有可能出现的问题:
1.依赖文件当中如果有跟security有关的以来,有可能出现客户端注册不成功的问题,可以把它注释掉,也许有别的方法解决,但是我没成功
2.如果客户端当掉之后,注册中心没有删除这个客户端,那就在注册中心的配置文件中加上
测试时关闭自我保护机制,保证不可用服务及时踢出
eureka.server.enable-self-preservation=false
然后再所有的客户端加上
lease-renewal-interval-in-seconds 每间隔1s,向服务端发送一次心跳,证明自己依然”存活“
eureka.instance.lease-renewal-interval-in-seconds=1
lease-expiration-duration-in-seconds 告诉服务端,如果我2s之内没有给你发心跳,就代表我“死”了,将我踢出掉。
eureka.instance.lease-expiration-duration-in-seconds=2