SpringCloud之Eureka详细的配置
本文内容纲要:
-介绍
-术语和概念
-配置说明
-Eureka服务器配置
-EurekaInstacen配置
-Eureka客户端配置
介绍
SpringCloud是一个完整的微服务治理框架,包括服务发现和注册,服务网关,熔断,限流,负载均衡和链路跟踪等组件。
SpringCloud-Eureka主要提供服务注册和发现功能。本文提供了该组件配置的全面说明。
术语和概念
- Eureka服务端:负责服务注册、发现并管理每项服务的中心
- **Eureka实例:**服务(如订单系统)部署多个服务器,每个服务器上提供的服务都是实例。
- Eureka服务:指提供特定服务功能的服务,例如:订单系统,同一服务可以提供多个实例;
- Eureka客户端:主要向服务中心注册自己成为服务。但它既可以是服务提供者,也可以是消费者。它与Eureka实例感觉相似,但实际上意义不同。
配置说明
Eureka服务器配置
- ################serverConfigurationassociatedwithclient####################33
- #Openself-protectionmode.Nomatterwhatthesituation,theserverwillmaintainacertainnumberofservices.Avoidnetworkproblemsbetweenclientandserver,andalargenumberofservicesarecleared.
- eureka.server.enable-self-preservation=true
- #Enablethetimedtasktoclearinvalidservices.Default1minute
- eureka.server.eviction-interval-timer-in-ms=60000
- #Howlong,clearexpireddeltadata
- eureka.server.delta-retention-timer-interval-in-ms=0
- #,isitalsoavailabletotheclient?
- eureka.server.disable-delta=false
- #eurekaWhethertheserverrecordstheidentityoftheclientheader
- eureka.server.log-identity-headers=true
- #Requestfrequencylimiter
- eureka.server.rate-limiter-burst-size=10
- #Whethertoenabletherequestfrequencylimiter
- eureka.server.rate-limiter-enabled=false
- #Requestfrequencyaverage
- eureka.server.rate-limiter-full-fetch-average-rate=100
- #Whethertolimitthefrequencyrequesttothestandardclient.Iffalse,onlylimitnon-standardclients
- eureka.server.rate-limiter-throttle-standard-clients=false
- #Registerservice,averagevalueofrequestfrequencyforpullingservicelistdata
- eureka.server.rate-limiter-registry-fetch-average-rate=500
- #Setthetrustedclientlist
- eureka.server.rate-limiter-privileged-clients=
- #Inthesettimerangeclass,thepercentageexpectedtoberenewedwiththeclient.
- eureka.server.renewal-percent-threshold=0.85
- #Howlongtoupdatetherenewalthreshold
- eureka.server.renewal-threshold-update-interval-ms=0
- #Howlongdoesittakeforcachedregistrationdatatoexpire?
- eureka.server.response-cache-auto-expiration-in-seconds=180
- #Howlongtoupdatetheserviceregistrationdatainthecache
- eureka.server.response-cache-update-interval-ms=0
- #Cachethetimeoftheincrementaldatasothatnoinformationislostwhensearching
- eureka.server.retention-time-in-m-s-in-delta-queue=0
- #Whenthetimestampsareinconsistent,whethertosynchronize
- eureka.server.sync-when-timestamp-differs=true
- #Whethertoadoptaread-onlycachepolicy,theread-onlypolicydoesnotexpireforcacheddata.
- eureka.server.use-read-only-response-cache=true
- ################serverCustomizedImplementationConfiguration####################33
- #json'simplementationclassnameforconversion
- eureka.server.json-codec-name=
- #PropertyResolver
- eureka.server.property-resolver=
- #eurekaserverxmlcodecimplementationname
- eureka.server.xml-codec-name=
- ################Associationbetweenservernodeandnode####################33
- #replicationdataisintherequest,alwayscompressed
- eureka.server.enable-replicated-request-compression=false
- #Indicateswhetherreplicationbetweenclusternodesshouldbebatchedtoimprovenetworkefficiency.
- eureka.server.batch-replication=false
- #Allowthemaximumnumberofreplicationeventsthatarebackeduptothebackuppool.Thisbackuppoolisresponsibleforothereventsexceptstatusupdates.Thisvaluecanbesetaccordingtomemorysize,timeoutandreplicationtraffic.
- eureka.server.max-elements-in-peer-replication-pool=10000
- #Allowthemaximumnumberofreplicationeventsthatarebackeduptothestatefulbackuppool
- eureka.server.max-elements-in-status-replication-pool=10000
- #Multipleservicecenterssynchronizethemaximumidletimeofinformationthreadswitheachother
- eureka.server.max-idle-thread-age-in-minutes-for-peer-replication=15
- #Statussynchronizationthreadmaximumidletime
- eureka.server.max-idle-thread-in-minutes-age-for-status-replication=15
- #Serviceregistryeachinstanceofthemaximumnumberofthreadstocopydatatoeachother
- eureka.server.max-threads-for-peer-replication=20
- #Serviceregistryeachinstanceofthemaximumnumberofthreadscopyingstatedata
- eureka.server.max-threads-for-status-replication=1
- Communicationtimebetween#instanceanddatareplication
- eureka.server.max-time-for-replication=30000
- #Theminimumnumberofnormalpeer-to-peerservices.-1indicatesthattheservicecenterisasinglenode.
- eureka.server.min-available-instances-for-peer-replication=-1
- Theminimumnumberofthreadsopenedbetween#instanceandmutualreplication
- eureka.server.min-threads-for-peer-replication=5
- Between#instanceforstatereplication,theminimumnumberofthreadsopened
- eureka.server.min-threads-for-status-replication=1
- Numberoftimesthatcanberetriedwhencopyingdatabetween#instance
- eureka.server.number-of-replication-retries=5
- #eurekaHowoftentoupdatedatabetweennodes.Thedefaultis10minutes.
- eureka.server.peer-eureka-nodes-update-interval-ms=600000
- #eurekaThetimeintervalbetweenservicestatusupdates.
- eureka.server.peer-eureka-status-refresh-time-interval-ms=0
- #eurekaPeer-to-peerconnectiontimeout
- eureka.server.peer-node-connect-timeout-ms=200
- #eurekaidletimeafterpeernodeconnection
- eureka.server.peer-node-connection-idle-timeout-seconds=30
- #Readdataconnectiontimeoutbetweennodes
- eureka.server.peer-node-read-timeout-ms=200
- #eurekaserverTotalnumberofconnectionsbetweennodes
- eureka.server.peer-node-total-connections=1000
- #eurekaserverMaximumnumberofsinglemachinesconnectedbetweennodes
- eureka.server.peer-node-total-connections-per-host=10
- #Thenumberoftimeseurekatriedtoobtainregistrationinformationwhentheservicenodewasstarted
- eureka.server.registry-sync-retries=
- #Wheneurekatriestoobtainregistrationinformationmultipletimeswhentheservicenodestartsup
- eureka.server.registry-sync-retry-wait-ms=
- #Whentheeurekaserverisstarted,youcannotwaitfortheinstanceregistrationinformationfromthepeernode.Howlongshoulditwait?
- eureka.server.wait-time-in-ms-when-sync-empty=0
- ################serverConfigurationassociatedwithremote####################33
- #,isitalsoprovidedtotheremoteregion?
- eureka.server.disable-delta-for-remote-regions=false
- #Oldbehavioroftheapplicationthatisrolledbacktotheremotezone(ifconfigured)Ifthereisnoinstanceoftheapplicationinthelocalzone,itwillbedisabled.
- eureka.server.disable-transparent-fallback-to-other-region=false
- #IndicateswhetherthecontentobtainedfromtheEurekaservermustbecompressedfortheremotezoneiftheserversupportsit.
- eureka.server.g-zip-content-from-remote-region=true
- #Connectioneurekaremotenoteconnectiontimeout
- eureka.server.remote-region-connect-timeout-ms=1000
- #remoteregionApplicationwhitelist
- eureka.server.remote-region-app-whitelist.
- #Connecteurekaremotenoteconnectionidletime
- eureka.server.remote-region-connection-idle-timeout-seconds=30
- #ExecutingremoteregionTherequestthreadpoolsizeforobtainingregistrationinformation
- eureka.server.remote-region-fetch-thread-pool-size=20
- #remoteregionTimeoutfromreadingdatafrompeereureka
- eureka.server.remote-region-read-timeout-ms=1000
- #Timeintervalforobtainingregistrationinformationfromremoteregion
- eureka.server.remote-region-registry-fetch-interval=30
- #remoteregionThetotalnumberofconnectionsconnectingeurekanodes
- eureka.server.remote-region-total-connections=1000
- #remoteregionThenumberofstand-aloneconnectionsconnectingeurekanodes
- eureka.server.remote-region-total-connections-per-host=50
- #remoteregionfetchesthestoragefileoftheregistrationinformation,andthisreliablestoragefileneedsafullyqualifiednametospecify
- eureka.server.remote-region-trust-store=
- #remoteregionPasswordofthestoredfile
- eureka.server.remote-region-trust-store-password=
- #remoteregionurl.separatedbymultiplecommas
- eureka.server.remote-region-urls=
- #remoteregionurl.separatedbymultiplecommas
- eureka.server.remote-region-urls-with-name.
- ################serverConfigurationassociatedwithASG/AWS/EIP/route52####################33
- #CachetheexpirationtimeofASGinformation.
- eureka.server.a-s-g-cache-expiry-timeout-ms=0
- #QuerythetimeouttimeofASGinformation.
- eureka.server.a-s-g-query-timeout-ms=300
- #ServiceupdateASGinformationfrequency
- eureka.server.a-s-g-update-interval-ms=0
- #AWSAccessID
- eureka.server.a-w-s-access-id=
- #AWSSecurityKey
- eureka.server.a-w-s-secret-key=
- #AWSbindingstrategy
- eureka.server.binding-strategy=eip
- #Usethenameoftherolethatautomaticallyextendsthegroupingfromathird-partyAWSaccountdescription.
- eureka.server.list-auto-scaling-groups-role-name=
- #Whethershouldestablishaconnectionguide
- eureka.server.prime-aws-replica-connections=true
- #NumberoftimestheservertriestobindcandidateEIPs
- eureka.server.e-i-p-bind-rebind-retries=3
- #ThetimeintervalatwhichtheserverbindstheEIP.Ifthebindingischecked,itisre-boundifthebindingfails.Ifandonlyifitisalreadybound
- eureka.server.e-i-p-binding-retry-interval-ms=10
- #TimeintervalatwhichtheserverbindsEIP.Ifandonlyiftheserviceisbound
- eureka.server.e-i-p-binding-retry-interval-ms-when-unbound=
- #Thenumberoftimestheservertriestobindroute53
- eureka.server.route53-bind-rebind-retries=3
- #Servletintervalhowlongtotrytobindroute53
- eureka.server.route53-binding-retry-interval-ms=30
- #
- eureka.server.route53-domain-t-t-l=10
EurekaInstacen配置
- #Hostnameoftheserviceregistryinstance
- eureka.instance.hostname=localhost
- #RegistertheapplicationgroupnameintheEurekaservice
- eureka.instance.app-group-name=
- #RegistertheapplicationnameintheEurekaservice
- eureka.instance.appname=
- #UniqueIDoftheinstanceregisteredtotheservicecenter
- eureka.instance.instance-id=
- #IPaddressoftheinstance
- eureka.instance.ip-address=
- #Instance,whetherIPispreferredoverhostname
- eureka.instance.prefer-ip-address=false
- #GroupnameassociatedwiththisinstanceforautomaticextensionoftheAWSplatform,
- eureka.instance.a-s-g-name=
- #Deploythedatacenterforthisinstance
- eureka.instance.data-center-info=
- #Defaultaddressresolutionorder
- eureka.instance.default-address-resolution-order=
- #Instanceenvironmentconfiguration
- eureka.instance.environment=
- #Initializetheinstanceandregistertotheinitialstateoftheservicecenter
- eureka.instance.initial-status=up
- #Indicatewhetheraslongasthisinstanceisregisteredtotheservicecenter,immediatelycommunicate
- eureka.instance.instance-enabled-onit=false
- #Thenamespaceoftheserviceinstanceforfindingattributes
- eureka.instance.namespace=eureka
- #Thechilddefinitionmetadataoftheserviceinstancecanbeacceptedbytheservicecenter.
- eureka.instance.metadata-map.test=test
- #Servicecenterdeletesthewaitingtime(inseconds)ofthisserviceinstance,andthetimeintervalistheheartbeattimereceivedbythelastservicecenter.
- eureka.instance.lease-expiration-duration-in-seconds=90
- #Theintervalatwhichtheinstancesendsaheartbeattotheservicecentertoindicatethattheserviceinstanceisavailable.
- eureka.instance.lease-renewal-interval-in-seconds=30
- #Instance,registrationservicecenter,thenumberofcommunicationopenedbydefault
- eureka.instance.registry.default-open-for-traffic-count=1
- #Numberofrenewalsperminute
- eureka.instance.registry.expected-number-of-renews-per-min=1
- #Instancehealthcheckurl,absolutepath
- eureka.instance.health-check-url=
- #Instancehealthcheckurl,relativepath
- eureka.instance.health-check-url-path=/health
- #Instance'shomepageurl,absolutepath
- eureka.instance.home-page-url=
- #Instance'shomepageurl,relativepath
- eureka.instance.home-page-url-path=/
- #Instancesecurityhealthcheckurl,absolutepath
- eureka.instance.secure-health-check-url=
- #https
- eureka.instance.secure-port=443
- #httpsCommunicationportisenabled
- eureka.instance.secure-port-enabled=false
- #http
- eureka.instance.non-secure-port=80
- #httpCommunicationportisenabled
- eureka.instance.non-secure-port-enabled=true
- #Securityvirtualhostname(https)forthisinstance
- eureka.instance.secure-virtual-host-name=unknown
- #Virtualhostnameofthisinstance(http)
- eureka.instance.virtual-host-name=unknown
- #Thestatusoftheinstanceisrenderedurl,absolutepath
- eureka.instance.status-page-url=
- #Thestatusoftheinstanceisrenderedurl,relativepath
- eureka.instance.status-page-url-path=/status
Eureka客户端配置
- #Thisclientisavailable
- eureka.client.enabled=true
- #InstanceWhethertoregisteryourowninformationontheeurekaserverforotherservicestodiscover,thedefaultistrue
- eureka.client.register-with-eureka=false
- #Thisclientgetstheregistrationinformationontheeurekaserverregistry,thedefaultistrue
- eureka.client.fetch-registry=false
- #Whethertofilterout,non-UPinstances.Defaultistrue
- eureka.client.filter-only-up-instances=true
- #zoneandurladdresswithEurekaRegistrationServiceCenter
- eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
- #clientistheidlewaitingtimeafterconnectingtotheEurekaserver.Thedefaultis30seconds.
- eureka.client.eureka-connection-idle-timeout-seconds=30
- #clientconnectstoeurekaserverconnectiontimeout,thedefaultis5seconds
- eureka.client.eureka-server-connect-timeout-seconds=5
- #clientReadtimeoutfortheserver
- eureka.client.eureka-server-read-timeout-seconds=8
- #clientConnectionalleurekaservertotalnumberofconnections,thedefault200
- eureka.client.eureka-server-total-connections=200
- #clientConnecttothenumberofsingle-machineconnectionsontheeurekaserver.Thedefaultis50.
- eureka.client.eureka-server-total-connections-per-host=50
- #Executiveindexrollbackrefreshrelatedattribute,whichisthemaximummultipleoftheretrydelay,thedefaultis10
- eureka.client.cache-refresh-executor-exponential-back-off-bound=10
- #Executionprogramcacherefreshthreadpoolsize,thedefaultis5
- eureka.client.cache-refresh-executor-thread-pool-size=2
- #Executionprogramrollbackrelatedattributes,whichisthemaximummultipleoftheretrydelay.Thedefaultis10
- eureka.client.heartbeat-executor-exponential-back-off-bound=10
- #Executionprogramthreadpoolsize,thedefaultis5
- eureka.client.heartbeat-executor-thread-pool-size=5
- #Askthefrequency(s)oftheEurekaserviceurlinformationchange,thedefaultis300seconds
- eureka.client.eureka-service-url-poll-interval-seconds=300
- #Thetime(s)requiredtoinitiallycopytheinstanceinformationtotheeurekaserver.Thedefaultis40seconds.
- eureka.client.initial-instance-info-replication-interval-seconds=40
- #Howlongdoesittaketocopytheinstanceinformationtotheeurekaserveragain,thedefaultis30seconds?
- eureka.client.instance-info-replication-interval-seconds=30
- #Timeinterval(s)fromtheeurekaserverregistrytoobtainregistrationinformation,thedefaultis30seconds
- eureka.client.registry-fetch-interval-seconds=30
- #Gettheregionwheretheinstanceislocated.Thedefaultisus-east-1
- eureka.client.region=us-east-1
- #InstanceWhethertousetheeurekaserverinthesamezone,thedefaultistrue.Ideally,theeurekaclientandserverareinthesamezone.
- eureka.client.prefer-same-zone-eureka=true
- #Getalistofavailableareasintheregionwheretheinstanceislocated,separatedbycommas.(AWS)
- eureka.client.availability-zones.china=defaultZone,defaultZone1,defaultZone2
- Thelistofcomma-separatedregionsinthe#eurekaserviceregistryinformation.Ifyoudonotreturntheseregions,theclientwillstartupwitherrors.Thedefaultisnull
- eureka.client.fetch-remote-regions-registry=
- #Serverisabletoredirectclientrequeststothebackupserver.Ifsettofalse,theserverwillprocesstherequestdirectly,andifsettotrue,itmaysendanHTTPredirecttotheclient.Defaultisfalse
- eureka.client.allow-redirects=false
- #
- eureka.client.client-data-accept=
- #Incrementalinformationcanbeprovidedtotheclient,thedefaultisfalse
- eureka.client.disable-delta=false
- The#eurekaserverserialization/deserializationinformationobtainsthereplacementstringofthe"_"symbol.Thedefaultis"__"
- eureka.client.escape-char-replacement=__
- The#eurekaserverserialization/deserializationinformationobtainsareplacementstringforthe"$"symbol.Thedefaultis"_-"
- eureka.client.dollar-replacement="_-"
- #Whentheserversupportscompression,whethertosupporttheinformationobtainedfromtheserverforcompression.Defaultistrue
- eureka.client.g-zip-content=true
- #Whethertorecordthedifferencebetweentheinformationintheregistrybetweentheeurekaserverandtheclient,thedefaultisfalse
- eureka.client.log-delta-diff=false
- #Ifsettotrue,theclient'sstatusupdatewillbeupdatedon-demandtotheremoteserver.Thedefaultistrue.
- eureka.client.on-demand-update-status-change=true
- #ThisclientisonlyinterestedininformationaboutasingleVIPregistry.Thedefaultisnull
- eureka.client.registry-refresh-single-vip-address=
- #clientisforcedtoregistertotheservicecenterduringtheinitializationphase,thedefaultisfalse
- eureka.client.should-enforce-registration-at-init=false
- #clientWhentheshutdownisdisplayed,thelogoutserviceisdisplayedfromtheservicecenter.Thedefaultistrue.
- eureka.client.should-unregister-on-shutdown=true
- #Gettheproxyhostoftheeurekaservice,thedefaultisnull
- eureka.client.proxy-host=
- #Gettheproxypasswordoftheeurekaservice,thedefaultisnull
- eureka.client.proxy-password=
- #Gettheproxyportoftheeurekaservice,thedefaultisnull
- eureka.client.proxy-port=
- #Gettheproxyusernameoftheeurekaservice,thedefaultisnull
- eureka.client.proxy-user-name=
- #Attributeinterpreter
- eureka.client.property-resolver=
- #Gettheimplementationnameofthefallbackoptionwhentheeurekaclientreadstheregistryatthefirststartup.
- eureka.client.backup-registry-impl=
- #×××Configuration,ifthelatestXXXisstable,itcanberemoved,thedefaultisnull
- eureka.client.decoder-name=
- #,ifthelatestencoderisstable,itcanberemoved,thedefaultisnull
- eureka.client.encoder-name=
- #WhethertousetheDNSmechanismtogetalistofservicesandthencommunicate.Defaultisfalse
- eureka.client.use-dns-for-fetching-service-urls=false
- #GettheDNSnametobequeriedtogettheeurekaserver.ThisconfigurationisonlyusedwhentheeurekaserveripaddresslistisintheDNS.Thedefaultisnull
- eureka.client.eureka-server-d-n-s-name=
- #Gettheportoftheeurekaserver.ThisconfigurationisonlyusedwhentheeurekaserveripaddresslistisintheDNS.Thedefaultisnull
- eureka.client.eureka-server-port=
- #indicatesthepathoftheeurekaregistrationcenter.Ifitisconfiguredaseureka,itishttp://x.x.x.x:x/eureka/.Addingthisconfigurationtotheeurekaconfigurationfileindicatesthateurekaisregisteredasaclienttotheregistrationcentertoformaneurekacluster.ThisconfigurationisonlyusedintheDNSaddresslistoftheeurekaserver.Thedefaultisnull.
- eureka.client.eureka-server-u-r-l-context=
本文内容总结:介绍,术语和概念,配置说明,Eureka服务器配置,EurekaInstacen配置,Eureka客户端配置,
原文链接:https://www.cnblogs.com/BlogNetSpace/p/11264235.html