美文网首页Java 杂谈Javajava学习之路
Eureka(二)使用配置详解

Eureka(二)使用配置详解

作者: 唯有努力不欺人丶 | 来源:发表于2019-07-06 12:57 被阅读46次

最近在做一个基于cloud的项目。以前用dubbo的我第一次接触cloud觉得简直方便的不得了。尤其是看一个实操视频。除了主播磨磨唧唧的搭建基础项目的时间。感觉整个项目干货一个小时都能提炼出来。。

真正开始做了的时候,基于钻研探索的精神。因为视频中和大多数网上帖子中eureka的配置一般只有短短四行(不是夸张。真的是只有四行)。所以我不管是脑抽还是热爱学习,反正是想找找一共eureka配置参数都有什么。。然后顺便写个文章记录下使用过程。

这里有一个特别注意的问题就是cloud 和boot和各种组件的版本问题。我在这提一下因为这个是我踩过的坑~~~所以先提一下。

cloud和boot的版本匹配关系 cloud和cloud中各种组件的版本匹配关系

eureka分两种配置:

服务端:Server

1,依赖(我这里用的spring boot1.5.21版本,所以和2以后的不一样):

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka-server</artifactId>

</dependency>

2,在启动类上添加服务端注解(关于这个注解有的版本哪怕不添加也会默认):

@EnableEurekaServer

3,在配置文件中配置eureka服务端的相关配置:

这里说到重头戏了,其实必须配置的也就三四条。剩下都是可选项。我会在每一条后面特别声明是否必须配置的。

#注册的名字.其实我觉得这个应该是比较好理解的了。相当于bean。唯一标识之类的。如果没有eureka会默认unknow。我认为是必须配置

spring.application.name=ourtowns-eureka-server

#还能说点啥?端口号不用解释了吧?对了,注意下开发的时候服务多了端口号别重了就行~8761是eureka推荐的~你随意改没关系。必填项

server.port=8761 

#允许这个服务端作为客户端么?我个人感觉单注册中心的就false得了。对这个属性有疑问的可以看我上篇文章,里面最后个小段解释的就是这个。这个不能算是必须配置不配置跑不起来的那种,而且系统默认是true。但是我还是建议配置。eureka术语详解   

eureka.client.register-with-eureka=false

#是否需要拉取服务信息。这个我在官网看了好久意思。才发大概明白。也是为了在集群的时候同步数据。Client在执行注册和心跳时对应的注册Server节点会广播此事件,同步给其他的Server节点。当其他Server节点还没有此服务信息时,改为注册此服务信息。因为我这个demo就是单服务中心的。所以也设置了false。系统默认是true。可以不配置,但是我还是建议配置。

eureka.client.fetch-registry=false

#服务注册中心实例的主机名,其实咋说呢~我感觉这个就是为了指定服务注册中心的位置用的。可配可不配~我一般是懒得专门配置的

eureka.instance.hostname=localhost

#如果你上面配置主机名了,这里可以直接使用~如果没配置就直接用localhost。然后我这个还拼接上面的端口号了~~写字面量理论上可以

eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

#这个是eureka的自我保护机制。通俗讲是心跳失败比例在15分钟内,低于85%,则不剔除客户端。到底开不开启看情况吧。默认为true 。关于自我保护机制我上一篇文章也有说明。eureka术语详解    
eureka.server.enableSelfPreservation=false

#咋说呢,这个是上面自我保护的阙值。刚说的低于百分之八十五就是在这里设置的0.85。其实我觉得这些比较少用吧。我反正是为了写这个汇总特意查找的资料,比较我自己的配置其实也贼简洁。

eureka.server.renewal-percent-threshold=0.85

#阈值更新的时间间隔,单位为毫秒,默认为15 * 60 * 1000。。。没啥可解释的了吧。。
eureka.server.renewal-threshold-update-interval-ms=

#eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒。

eureka.server.eviction-interval-timer-in-ms=60000

客户端:client

1,依赖(我这里用的spring boot1.5.21版本,所以和2以后的不一样):

这里要着重说一下,第一个依赖是作为eureka的客户端的依赖。第二个则是feign的依赖,用于服务之间相互调用的。我觉得很有必要所以一起放在这里,如果有的人觉得用不到第二个可以不导入。

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-feign</artifactId>

</dependency>

2,在启动类上添加客户端注解(关于这个注解有的版本哪怕不添加也会默认):

@EnableDiscoveryClient  //这个是作为eureka客户端的注解。不用feign的话只添上这一个注解就可以。

@EnableFeignClients     //这个是用户服务间相互调用的注解

3,在配置文件中配置eureka客户端的相关配置:

#注册的名字.跟服务端其实是一样的。如果想要一个服务多节点,节点的名字是要一样代

spring.application.name=ourtowns-eureka-client

#端口号~~注意多个微服务之间端口号要不同。如果是在一台服务器布置多节点,节点之间端口号也要不同。

server.port=8888 

#注册到的注册中心地址。跟你自己的服务端设置的要一样。

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

# 开启健康检查(需要spring-boot-starter-actuator依赖)这个是为了让服务端能精确的知道你这个服务死没死掉的

eureka.client.healthcheck.enabled=true

#租期更新时间间隔(默认30秒)。就是你没约定时间就去发个报告说你还活着。默认30.我这里设置的5

eureka.instance.lease-renewal-interval-in-seconds=5

# 到期时间(默认90秒).如果你约定时间内还没跟服务端说你还活着,就代表你已经死了。然后服务端就能把你踢了~。

eureka.instance.lease-expiration-duration-in-seconds =10

对了,这里有两个注意点:

    -更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。

    -eureka.client.healthcheck.enabled=true 只应该在application.yml/properties中设置。如果设置在bootstrap.yml中将会导致一些不良的副作用,例如在Eureka中注册的应用名称是UNKNOWN等。

到这里你们用eureka搭建的boot+cloud微服务已经可以起来啦~~然后此文主要是参考了一个帖子~~那么大佬把eureka的所有属性从官网文档整理出来的~~~膜拜一波~~~然后有兴趣的可以跳转过去看看~~~

eureka参数大全

然后如果有比较了解的亲们或者说我上述观点哪里有偏颇~~欢迎指出~~!!!

喏,手打不易,大家动动小手喜欢分享转发关注评论啥的~~~~

相关文章

网友评论

    本文标题:Eureka(二)使用配置详解

    本文链接:https://www.haomeiwen.com/subject/iakshctx.html