二、Eureka配置
- 新建springcloud-study-euraka-7001工程,导入相关依赖
pom文件配置
1 |
|
yml文件配置
1 | server: |
1、将服务注册进Eureka
- 8001provider服务中添加配置
1 | <!--将微服务provider注册进eureka--> |
- 修改8001的yml配置
1 | #客户端注册进eureka服务列表 |
- 8001 启动类增加@EnableEurekaClient注解
1 |
|
- 注册成功,在7001的Eureka服务站中会显示
2、actuator与注册微服务信息完善
actuator:在springboot中主管监控和配置
主机名称、服务名称修改
1、修改8001的yml配置
1
2
3
4
5
6
7eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
#服务实例名称修改
instance:
instance-id: study-springcloud-dept8001访问信息有ip信息提示
修改8001yml配置
1
2
3
4
5
6
7
8
9
10#客户端注册进eureka服务列表
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
instance:
#服务实例名称修改
instance-id: study-springcloud-dept8001
#访问路径显示IP地址
prefer-ip-address: true微服务info内容详细信息
1、修改8001的pom文件,增加actuator的配置
1
2
3
4
5<!--actuator监控自信息完善-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>2、父工程pom文件修改,增加build信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<build>
<!--finalName 父工程名称-->
<finalName>spring-cloud-study</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<!--过滤开启-->
<filtering>true</filtering>
</resource>
</resources>
<!--增加插件-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<!--配置插件解析-->
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>3、修改8001的yml,增加info信息
1
2
3
4
5info:
app.name: study-springcloud-micoservices
company.name: www.gxs.com
build.artifactId: $project.artifactId$
build.version: $project.version$
3、Eureka自我保护机制
Netflix在设置Eureka时,遵循AP原则
某时刻某一微服务不可用时,eureka不会立刻清理,依旧会对改微服务的信息进行保存。服务失去心跳、名称变更、网络拥堵
自我保护机制:应对网络异常的安全措施
默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销实例(默认90秒)。但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险——因为微服务本身其实是健康的,==此时本不应该注销这个服务==。Eureka通过“自我保护模式”来解决这个问题——当EurekaServer节点再短时间内丢失过多客户端时(可能发生网络故障),那么这个节点就会进入自我保护模式。一旦进去该模式,EurekaServer就会保护服务注册表中的信息,不再删除服务注册表中的数据(也即不会注销任何微服务)。当网络故障恢复后,改EurekaServer节点会自动退出自我保护模式。
==宁可保护错误的注册信息,也不盲目注销任何可能健康的微服务实例==
禁用自我保护机制
可以使用eureka.server.enable-self-preservation=false
4、Eureka服务发现
对于注册进eureka里面的服务,可以通过服务发现获得该服务的信息
==供消费者调用==
1、添加服务发现接口
在8001工程的Controller类中增加DiscoveryClient
1 |
|
2、增加自己服务描述的接口
1 | "/dept/discovery",method = RequestMethod.GET) (value = |
3、8001主启动类中增加 @@EnableDiscoveryClient注解
4、启动,调用http://localhost:8001/dept/discovery
8001需要等待注入一段时间,注入进server
5、在80消费端中增加相应调用
1 | "/consumer/dept/discovery") (value = |
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!