Eureka的服务配置大全

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eureka的服务配置大全相关的知识,希望对你有一定的参考价值。

参考技术A eureka.server.enable-self-preservation=true

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

eureka.server.delta-retention-timer-interval-in-ms=0

eureka.server.rate-limiter-burst-size=10

eureka.server.rate-limiter-enabled=false

eureka.server.rate-limiter-full-fetch-average-rate=100

eureka.server.rate-limiter-throttle-standard-clients=false

eureka.server.rate-limiter-registry-fetch-average-rate=500

eureka.server.rate-limiter-privileged-clients=

eureka.server.renewal-percent-threshold=0.85

eureka.server.renewal-threshold-update-interval-ms=0

eureka.server.response-cache-auto-expiration-in-seconds=180

eureka.server.response-cache-update-interval-ms=0

eureka.server.retention-time-in-m-s-in-delta-queue=0

eureka.server.sync-when-timestamp-differs=true

eureka.server.use-read-only-response-cache=true

eureka.server.enable-replicated-request-compression=false

eureka.server.batch-replication=false

eureka.server.max-elements-in-peer-replication-pool=10000

eureka.server.max-elements-in-status-replication-pool=10000

eureka.server.max-idle-thread-age-in-minutes-for-peer-replication=15

eureka.server.max-idle-thread-in-minutes-age-for-status-replication=15

eureka.server.max-threads-for-peer-replication=20

eureka.server.max-threads-for-status-replication=1

eureka.server.max-time-for-replication=30000

eureka.server.min-available-instances-for-peer-replication=-1

eureka.server.min-threads-for-peer-replication=5

eureka.server.min-threads-for-status-replication=1

eureka.server.number-of-replication-retries=5

eureka.server.peer-eureka-nodes-update-interval-ms=600000

eureka.server.peer-eureka-status-refresh-time-interval-ms=0

eureka.server.peer-node-connect-timeout-ms=200

eureka.server.peer-node-connection-idle-timeout-seconds=30

eureka.server.peer-node-read-timeout-ms=200

eureka.server.peer-node-total-connections=1000

eureka.server.peer-node-total-connections-per-host=10

eureka.server.registry-sync-retries=

eureka.server.registry-sync-retry-wait-ms=

eureka.server.wait-time-in-ms-when-sync-empty=0

eureka.client.enabled=true

eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false

eureka.client.filter-only-up-instances=true

eureka.client.serviceUrl.defaultZone=http://[图片上传失败...(image-8b05e1-1640876153404)]

server.port/eureka/

eureka.client.eureka-connection-idle-timeout-seconds=30

eureka.client.eureka-server-connect-timeout-seconds=5

eureka.client.eureka-server-read-timeout-seconds=8

eureka.client.eureka-server-total-connections=200

eureka.client.eureka-server-total-connections-per-host=50

eureka.client.cache-refresh-executor-exponential-back-off-bound=10

eureka.client.cache-refresh-executor-thread-pool-size=2

eureka.client.heartbeat-executor-exponential-back-off-bound=10

eureka.client.heartbeat-executor-thread-pool-size=5

eureka.client.eureka-service-url-poll-interval-seconds=300

eureka.client.initial-instance-info-replication-interval-seconds=40

eureka.client.instance-info-replication-interval-seconds=30

eureka.client.registry-fetch-interval-seconds=30

eureka.client.region=us-east-1

eureka.client.prefer-same-zone-eureka=true

eureka.client.availability-zones.china=defaultZone,defaultZone1,defaultZone2

eureka.client.fetch-remote-regions-registry=

eureka.client.allow-redirects=false

eureka.client.client-data-accept=

eureka.client.disable-delta=false

eureka.client.escape-char-replacement=__

eureka.client.dollar-replacement="_-"

eureka.client.g-zip-content=true

eureka.client.log-delta-diff=false

eureka.client.on-demand-update-status-change=true

eureka.client.registry-refresh-single-vip-address=

eureka.client.should-enforce-registration-at-init=false

eureka.client.should-unregister-on-shutdown=true

eureka.instance.hostname=localhost

eureka.instance.app-group-name=

eureka.instance.appname=

eureka.instance.instance-id=

eureka.instance.ip-address=

eureka.instance.prefer-ip-address=false

基于DNS搭建高可用Eureka注册中心

参考技术A 按Alt + 回车键,将会生成eureka-server.zip,解压缩后得到一个maven 项目,将该项目录入IDE。

我们首先来看一下pom文件,可以看出项目中引用了spring-cloud-starter-netflix-eureka-server, 并且springboot 的版本号为:2.1.2.RELEASE, Spring Cloud的版本号为:Greenwich.RC2RC2 表示还没有正式发布,只是第二个Release Candidate。
接下来我们只需要两个步骤,
a、修改EurekaServerApplication, 在@SpringBootApplication的注解上面,加入一个新的注解:@EnableEurekaServer
b、在resources 目录中加入application.yml 文件, 并配置以下信息:

一个简单的Eureka 注册中心就已经可以使用了,我们运行一下这个spring boot 应用,找开浏览器:localhost:8761,即可看到我们的注册中心就已经运行启来了。并且EUREKA-SERVER也注册到自己的注册中心了。

单节点的注册中心已经搭建完毕,但单节点的注册中心存在单点故障的可能,不能用于生产环境。生产环境的Eureka一般采用集群方式进行部署。

通过client.serviceUrl.defaultZone配置多个peer节点,因为是在单机上测试,所以修改了host文件,并且使用不同的端口号来启动注册中心。正式的生产环境请根据自己的实际情况进行配置,比如:第一台Eureka的IP地址为:192.168.0.100,则defaultZone配置其他三台注册中心http://192.168.0.101:8761/eureka/,http://192.168.0.102:8761/eureka/,http://192.168.0.103:8761/eureka/
依次启动4台注册中心,打开网页:http://localhost:8764

可以看到其它三台注册中心已经出现在已注册的replicas和可用的replicas列表里边。

如上图所示,4台注册中心,每台注册中心需要配置其他三台服务器,以Eureka 1为例,其配置如下:

注册中心是本应该是无状态的,可以横向扩展。但由于每台注册中心的配置都不一样,所以扩展起来比较麻烦,需要修改配置文件,这样就无法做到快速的扩容。

微服务客户端需要配置注册中心的地址,使用的是如下的配置:

由于配置的是固定的IP地址,如果我们要扩容注册中心,增加新的注册中心节点,那我们就需要修改微服务客户端的配置文件,将新的注册中心节点进入的服务器列表中。试想一下,如果有几十个微服务,每个微服务有4个节点,那将会要修改上百个配置文件。很显然这种方式不太可取,从软件设计角度来说,违反了开闭原则。

其实Eureka 注册中心还有另一种高可用配置方式,基于DNS。Eureka天生就可以部署在像AWS这样的公有云上,并且可以跨Region,跨Available Zone部署。虽然我们不用部署在云端,依然可以利用这一特性,我们可以把Region看作我们数据中心的机房,Avaiable Zone 看作是机房中的网络区域,结合内部DNS服务来实现高可用的注册中心。

画重点:
a. region: default,配置地区
b. useDnsForFetchingServiceUrls,表示基于DNS获取服务信息
c. eurekaServerDNSName: eureka.txzq.com.cn,配置域名服务器名称

键:txt.default.eureka.txzq.com.cn 值:shenzhen.eureka.txzq.com.cn
键:txt.shenzhen.eureka.txzq.com.cn 值:172.18.10.1 172.18.10.2 172.18.10.3 172.18.10.4

第一条记录表示,default 区域,包含了哪些可用区,我们用shenzhen表示是深圳机房,txt记录的值就设置为:shenzhen.eureka.txzq.com.cn
第二第记录表示 , shenzhen机房有哪些服务器,多台服务器使用空格格开。
如果在本地测试,需要搭建一台自己的DNS服务器,可以参考我的另一篇文章: 基于Docker快速搭建DNS Server

Client View是指DNS服务应用到哪一个网段,比如:172.18.10.0/24网段的IP连接到BIND服务器,才会解析指定的域名。

在添加域名的时候,需要指定Client View,这里我们选择我们刚刚创建的View_172.18.10.0,指的是只有在这个网段的IP访问这台DNS服务器,才能解析。

添加完一级域名后我们刷一下这个ZONE,然后设置一下本地DNS服务器

DNS域名服务器验证通过后,我们接下来就可以在为这个域名添加我们所需要的txt 记录了。

到这里我们的准备工作就已经基本完成了。使用Maven将注册中心编译成,输出jar包。新建一个Eureka的docker镜像,并启动4个容器。基于DNS的注册中心就搭建完毕了。

你只需要对DNS记录进行变更,就可以实现动态的、快速扩容/缩容了。

关于如何将Eureka部署到Docker,请参考另一篇文章:

以上是关于Eureka的服务配置大全的主要内容,如果未能解决你的问题,请参考以下文章

基于DNS搭建高可用Eureka注册中心

SpringCloud简单案例

SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段

SpringCloud02 Eureka知识点Eureka服务端和客户端的创建Eureka服务端集群Eureka客户端向集群的Eureka服务端注册

微服务(eureka 客户端)未向 eureka 服务器注册/eureka 服务器未发现 eureka 客户端

Eureka:服务发现工具