继续上一篇,接下来Springcloud配置Eureka Client。
1、创建Eureka-client模块
勾选两个依赖
2、eureka-client的pom修改
需要继承父工程
<parent> <groupId>com.springcloud</groupId> <artifactId>father</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
删除与父工程重复的配置,达到简洁明了的效果
3、Daddy的pom修改
添加子模块的依赖关系
<module>eureka-client</module>
4、配置文件
对eureka-client的application.properties配置
# eureka-client项目端口号 server.port=8071 # eureka-client项目实例名 spring.application.name=eureka-client # eureka-client需要去注册的地址,也就是eureka-server的地址+/eureka的后缀 eureka.client.serviceUrl.defaultZone=http://localhost:8070/eureka/
5、启动运行
运行成功之后,刷新一遍eureka-server界面,查看一下是否有注册实例
然后看到下面的信息我们已经注册成功,不过1显示有两行报错信息,意思为Eureka-server开启自我保护机制,原因是
心跳机制
名字 | 含义 | 条件 |
Lease expiration enabled | 是否开启保护机制,false表示开启 | 当Renew threshold < Renews(last min)为false |
Renew threshold | server期望在每分钟中收到的心跳次数 | 1 + 2 * eureka-clinet的个数 |
Renews(last min) | 上一分钟eureka-client发送的请求为2次 | 一个eureka-client默认每隔30秒发送一次心跳,所以一分钟为2 |
所以目前我们两个办法解决,请看下一步
6、Eureka-server解决心跳机制
由于上一步我们已经说明了,第一个办法是让eureka-server注册中心自己关闭这个机制,所以在eureka-server的配置文件中添加如下:
# eureka-server 关闭自我保护心跳机制 eureka.server.enable-self-preservation=false
关闭后出现提出语,如下,表示在配置上,自我保护机制关闭
7、Eureka-client解决心跳机制
修改eureka-client主动发送心跳的频率,把默认值每隔30秒发送一次心跳改成15秒或者10秒
# eureka-client 默认30秒主动向注册中心发送一次心态 eureka.instance.lease-renewal-interval-in-seconds=10
修改等待一分钟后,刷新Eureka-server界面,如下:
这样,甚至连红色的一行都没有了,所以我觉得这个是更好的解决方案,到此我们的服务注册和发现也完成了,eureka-client完成配置,又掌握了一个小组建
8、搭建成功之后的总结
在配置eureka-client的时候,在它的启动类上,刚刚使用了
@EnableEurekaClient
其实也可以使用,都能起到相同的作用
@EnableDiscoveryClient
两者的区别就是SpringCloud的服务注册与发现,至少有三个插件可以使用,分别是Eureka、Zookeeper、Consul三个中间件,而且Eureka和Consul是竞争关系,但是SpringCloud默认使用的是Neflix Eureka,所以自动使用的注册中心中间件是Eureka,所以@EnableEurekaClient使用的就是Eureka中间件,如果使用@EnableDiscoveryClient,会有选择性的选择中间件,如果公司要求你们选择其他的中间件的话。