服务发现组件 Eureka
学习笔记(2019.11.27)
Eureka
服务端(注册中心)开发
1. 创建demo_eureka_service
模块
2. 在父工程 引入依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3.demo_eureka_service
模块pom.xml
引入eureka-server
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
4. 添加application.yml
server:
port: 6868 #服务端口
eureka:
#客户端配置
client:
#是否将自己注册到Eureka服务中,本身就是所以无需注册 默认值是true
register-with-eureka: false
#是否从Eureka中获取注册信息 默认值是true
fetch-registry: false
#注册中心地址
service-url:
defaultZone: http://localhost:${server.port}/eureka/
#eureka client间隔多久去拉取服务注册信息,默认为30秒
registry-fetch-interval-seconds:
#开启健康检查,默认为true
healthcheck:
enabled: true
#实例配置
instance:
#解决Eureka注册服务慢, 续约更新时间间隔(默认30秒)
lease-renewal-interval-in-seconds: 10
#设置服务的失效时间,默认为90秒未向服务发送renew请求,就会被当作失效服务被剔除,此处为秒
leaseExpirationDurationInSeconds: 30
#设置定时扫描失效服务时间,默认为60秒,此处为毫秒
server:
evictionIntervalTimerInMs: 5000
spring:
application:
#服务名称 不要用下划线
name: demo-eureka-service
有关eureka可配置选项的更多详细信息,请参见EurekaInstanceConfigBean和EurekaClientConfigBean。
5. 编写启动类: (在包com.zhihao.eureka
下创建启动类)
@SpringBootApplication
@EnableEurekaServer //启动eureka服务的注解
public class EurekaServer {
public static void main(String[] args) {
SpringApplication.run(EurekaServer.class, args);
}
}
6.启动运行启动类,然后在浏览器地址栏输入 http://localhost:6868/
就能看到管理界面了,主界面中system status为系统信息 General Info为一般信息 Instances currently registered with Eureka为注册到的所有微服务列表,到此Eureka服务器启动完毕。
Eureka
客户端(服务注册)开发
1. 在每个模块上加上依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 每个模块的application.yml
,添加注册eureka
服务的配置
server:
port: 8861
eureka:
client:
#表示是否将自己注册进EurekaServer与 是否从EurekaServer抓取已有的注册信息,默认为true
#注册中心地址
service-url:
defaultZone: http://localhost:6868/eureka/
instance:
#实例编号
instance-id: demo-eureka-client
#访问路径可以显示IP地址
prefer-ip-address: true
#Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
#lease-renewal-interval-in-seconds: 1
#Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
#lease-expiration-duration-in-seconds: 2
spring:
application:
name: demo-eureka-client
- 启动类上加上注解
@EnableEurekaClient
注解,说明自己是Eureka客户端
@SpringBootApplication
@EnableEurekaClient
public class ClientApplication {
public static void main(String[] args) {
SpringApplication.run(ClientApplication.class, args);
}
}
4.启动该模块后 查看服务端管理界面发现服务已经注册上去,到此客户端注册完成可以进行服务的提供和消费 (注意启动顺序 先启动服务端→在客户端)