相关推荐recommended
【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心)
作者:mmseoamin日期:2023-12-05

【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第1张

🏆 作者简介,愚公搬代码

🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。

🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。

🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。

🏆🎉欢迎 👍点赞✍评论⭐收藏

文章目录

  • 🚀前言
  • 🚀一、Eureka注册中心
    • 🔎1.Eureka的结构和作用
    • 🔎2.搭建eureka-server
      • 🦋2.1 创建eureka-server服务
      • 🦋2.2 引入eureka依赖
      • 🦋2.3 编写启动类
      • 🦋2.4 编写配置文件
      • 🦋2.5 启动服务
      • 🔎3.服务注册
        • 🦋3.1 引入依赖
        • 🦋3.2 配置文件
        • 🦋3.3 启动多个user-service实例
        • 🔎4.服务发现
          • 🦋4.1 引入依赖
          • 🦋4.2 配置文件
          • 🦋4.3 服务拉取和负载均衡(新)
          • 🦋4.4 服务拉取和负载均衡(旧)
          • 🚀二、Euraka配置详解
            • 🔎1.Eureka Instance实例信息配置
            • 🔎2.Eureka Client客户端特性配置
            • 🔎3.Eureka Server注册中心端配置
            • 🔎4.Eureka Server注册中心仪表盘配置
            • 🚀三、Euraka高可用
            • 🚀感谢:给读者的一封信

              🚀前言

              微服务注册中心是一个管理微服务的工具,可以帮助微服务在分布式系统中发现、注册和协调服务之间的交互。它是微服务架构的核心组件之一,负责维护服务注册表,提供服务发现、负载均衡、故障恢复等功能,使得微服务能够更好地运行和协作。常见的微服务注册中心有Consul、Eureka、Zookeeper等。

              🚀一、Eureka注册中心

              注册中心是分布式系统中的重要组件,主要作用是为服务提供者和服务消费者之间建立联系。在一个分布式系统中,服务提供者和消费者数量很多,而且会随时变化。没有一个中心化的机制来管理它们之间的联系,会造成服务发现、负载均衡、故障转移等问题。

              使用注册中心可以简化服务发现过程,提供负载均衡和故障转移支持。服务提供者和消费者将其元数据注册到注册中心,当消费者需要调用某个服务时,可以通过注册中心找到该服务提供者,并进行调用。当某个服务不可用时,注册中心可以及时检测到并将其从可用服务列表中删除,从而实现快速的故障转移。

              注册中心是分布式系统中极其重要的基础设施,可以提高系统的可靠性、可维护性和可扩展性。

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第2张

              🔎1.Eureka的结构和作用

              Eureka是Netflix开源的一种服务发现工具,它可以通过RESTful接口实现微服务的动态发现和负载均衡。Eureka采用客户端-服务端模式,服务提供方在启动时将自己注册到Eureka服务器中,Eureka服务器维护服务注册表,记录了所有可用的服务实例,服务消费方在需要调用服务时从Eureka服务器中获取服务实例信息,然后进行调用。

              Eureka结构主要包括两个主要组件:Eureka Server和Eureka Client。Eureka Server是服务注册中心,负责维护所有可用服务的注册表、实例状态和信息变更的通知,同时会定时将注册表信息发送给其他Eureka Server实现集群的高可用。Eureka Client是服务消费方,负责从Eureka Server中获取可用服务实例信息,并进行服务调用。

              Eureka的作用主要在于解耦服务之间的调用关系,提高了系统的可扩展性和可维护性。同时,Eureka还支持服务的自我保护机制,当Eureka Server失去与客户端的联系时,它将保留已注册的实例信息,避免服务的瞬时不可用性。

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第3张

              Eureka的具体使用步骤如下:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第4张

              🔎2.搭建eureka-server

              🦋2.1 创建eureka-server服务

              在cloud-demo父工程下,创建一个spring boot子模块:

              
              
              	
              		cloud-demo
              		cn.itcast.demo
              		1.0
              	
              	4.0.0
              	eureka-service
              	
              		8
              		8
              	
              
              

              🦋2.2 引入eureka依赖

              引入SpringCloud为eureka提供的starter依赖:

              
              	
              		org.springframework.cloud
              		spring-cloud-starter-netflix-eureka-server
              	
              
              

              🦋2.3 编写启动类

              给eureka-server服务编写一个启动类,一定要添加一个 @EnableEurekaServer 注解,开启eureka的注册中心功能:

              package cn.itcast.demo.eurekaserver;
              import org.springframework.boot.SpringApplication;
              import org.springframework.boot.autoconfigure.SpringBootApplication;
              import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
              @SpringBootApplication
              @EnableEurekaServer
              public class EurekaServerApplication {
              	public static void main(String[] args) {
              		SpringApplication.run(EurekaServerApplication.class, args);
              	}
              }
              

              🦋2.4 编写配置文件

              编写一个application.yml文件,内容如下:

              server:
                port: 10086
              spring:
                application:
                  name: eureka-server
              eureka:
                instance:
                  hostname: localhost # 主机名
                client:
                  service-url:
                    defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
                  register-with-eureka: false # 是否将自己的路径 注册到eureka上。eureka server 不需要的,eureka provider client 需要
                  fetch-registry: false # 是否需要从eureka中抓取路径。eureka server 不需要的,eureka consumer client 需要
                server:
                  enable-self-preservation: false # 关闭自我保护机制
                  eviction-interval-timer-in-ms: 3000 # 检查服务的时间间隔
              

              🦋2.5 启动服务

              启动微服务,然后在浏览器访问:http://127.0.0.1:10086

              看到下面结果应该是成功了:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第5张

              🔎3.服务注册

              🦋3.1 引入依赖

              在user-service的pom文件中,引入下面的eureka-client依赖:

              
                  org.springframework.cloud
                  spring-cloud-starter-netflix-eureka-client
              
              

              🦋3.2 配置文件

              在user-service中,修改application.yml文件,添加服务名称、eureka地址:

              spring:
                application:
                  name: userservice
              eureka:
                client:
                  service-url:
                    defaultZone: http://127.0.0.1:10086/eureka
              

              🦋3.3 启动多个user-service实例

              为了演示一个服务有多个实例的场景,我们添加一个SpringBoot的启动配置,再启动一个user-service。

              首先,复制原来的user-service启动配置:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第6张

              然后,在弹出的窗口中,填写信息:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第7张

              现在,SpringBoot窗口会出现两个user-service启动配置:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第8张

              不过,第一个是8081端口,第二个是8082端口。

              启动两个user-service实例:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第9张

              查看eureka-server管理页面:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第10张

              🔎4.服务发现

              🦋4.1 引入依赖

              之前说过,服务发现、服务注册统一都封装在eureka-client依赖,因此这一步与服务注册时一致。

              在order-service的pom文件中,引入下面的eureka-client依赖:

              
                  org.springframework.cloud
                  spring-cloud-starter-netflix-eureka-client
              
              

              🦋4.2 配置文件

              服务发现也需要知道eureka地址,因此第二步与服务注册一致,都是配置eureka信息:

              在order-service中,修改application.yml文件,添加服务名称、eureka地址:

              spring:
                application:
                  name: orderservice
              eureka:
                client:
                  service-url:
                    defaultZone: http://127.0.0.1:10086/eureka
              

              🦋4.3 服务拉取和负载均衡(新)

              最后,我们要去eureka-server中拉取user-service服务的实例列表,并且实现负载均衡。

              不过这些动作不用我们去做,只需要添加一些注解即可。

              在order-service的OrderApplication中,给RestTemplate这个Bean添加一个@LoadBalanced注解:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第11张

              修改order-service服务中的cn.itcast.order.service包下的OrderService类中的queryOrderById方法。修改访问的url路径,用服务名代替ip、端口:

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第12张

              spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡。

              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第13张

              🦋4.4 服务拉取和负载均衡(旧)

              @EnableDiscoveryClient // 激活DiscoveryClient
              @EnableEurekaClient
              @SpringBootApplication
              public class ConsumerApp {
                  public static void main(String[] args) {
                      SpringApplication.run(ConsumerApp.class,args);
                  }
              }
              
              @RestController
              @RequestMapping("/order")
              public class OrderController {
                  @Autowired
                  private RestTemplate restTemplate;
                  @Autowired
                  private DiscoveryClient discoveryClient;
                  @GetMapping("/goods/{id}")
                  public Goods findGoodsById(@PathVariable("id") int id){
                      System.out.println("findGoodsById..."+id);
                      //演示discoveryClient 使用
                      List instances = discoveryClient.getInstances("EUREKA-PROVIDER");
                      //判断集合是否有数据
                      if(instances == null || instances.size() == 0){
                          //集合没有数据
                          return null;
                      }
                      ServiceInstance instance = instances.get(0);
                      String host = instance.getHost();//获取ip
                      int port = instance.getPort();//获取端口
                      System.out.println(host);
                      System.out.println(port);
                      String url = "http://"+host+":"+port+"/goods/findOne/"+id;
                      // 3. 调用方法
                      Goods goods = restTemplate.getForObject(url, Goods.class);
                      return goods;
                  }
              }
              

              🚀二、Euraka配置详解

              Eureka包含四个部分的配置

              1. instance:当前Eureka Instance实例信息配置
              2. client:Eureka Client客户端特性配置
              3. server:Eureka Server注册中心特性配置
              4. dashboard:Eureka Server注册中心仪表盘配置

              🔎1.Eureka Instance实例信息配置

              Eureka Instance的配置信息全部保存在org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean配置类里,实际上它是com.netflix.appinfo.EurekaInstanceConfig的实现类,替代了netflix的com.netflix.appinfo.CloudInstanceConfig的默认实现。

              Eureka Instance的配置信息全部以eureka.instance.xxx的格式配置。

              配置列表

              • appname = unknown

                应用名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。

                • appGroupName = null

                  应用组名

                  • instanceEnabledOnit = false

                    实例注册到Eureka上是,是否立刻开启通讯。有时候应用在准备好服务之前需要一些预处理。

                    • nonSecurePort = 80

                      非安全的端口

                      • securePort = 443

                        安全端口

                        • nonSecurePortEnabled = true

                          是否开启非安全端口通讯

                          • securePortEnabled = false

                            是否开启安全端口通讯

                            • leaseRenewalIntervalInSeconds = 30

                              实例续约间隔时间

                              • leaseExpirationDurationInSeconds = 90

                                实例超时时间,表示最大leaseExpirationDurationInSeconds秒后没有续约,Server就认为他不可用了,随之就会将其剔除。

                                • virtualHostName = unknown

                                  虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。

                                  • instanceId

                                    注册到eureka上的唯一实例ID,不能与相同appname的其他实例重复。

                                    • secureVirtualHostName = unknown

                                      安全虚拟主机名,首先获取spring.application.name的值,如果取值为空,则取默认unknown。

                                      • metadataMap = new HashMap();

                                        实例元数据,可以供其他实例使用。比如spring-boot-admin在监控时,获取实例的上下文和端口。

                                        • dataCenterInfo = new MyDataCenterInfo(DataCenterInfo.Name.MyOwn);

                                          实例部署的数据中心。如AWS、MyOwn。

                                          • ipAddress=null

                                            实例的IP地址

                                            • statusPageUrlPath = “/actuator/info”

                                              实例状态页相对url

                                              • statusPageUrl = null

                                                实例状态页绝对URL

                                                • homePageUrlPath = “/”

                                                  实例主页相对URL

                                                  • homePageUrl = null

                                                    实例主页绝对URL

                                                    • healthCheckUrlUrlPath = “/actuator/health”

                                                      实例健康检查相对URL

                                                      • healthCheckUrl = null

                                                        实例健康检查绝对URL

                                                        • secureHealthCheckUrl = null

                                                          实例安全的健康检查绝对URL

                                                          • namespace = “eureka”

                                                            配置属性的命名空间(Spring Cloud中被忽略)

                                                            • hostname = null

                                                              主机名,不配置的时候讲根据操作系统的主机名来获取

                                                              • preferIpAddress = false

                                                                是否优先使用IP地址作为主机名的标识

                                                                🔎2.Eureka Client客户端特性配置

                                                                Eureka Client客户端特性配置是对作为Eureka客户端的特性配置,包括Eureka注册中心,本身也是一个Eureka Client。

                                                                Eureka Client特性配置全部在org.springframework.cloud.netflix.eureka.EurekaClientConfigBean中,实际上它是com.netflix.discovery.EurekaClientConfig的实现类,替代了netxflix的默认实现。

                                                                Eureka Client客户端特性配置全部以eureka.client.xxx的格式配置。

                                                                配置列表

                                                                • enabled=true

                                                                  是否启用Eureka client。

                                                                  • registryFetchIntervalSeconds=30

                                                                    定时从Eureka Server拉取服务注册信息的间隔时间

                                                                    • instanceInfoReplicationIntervalSeconds=30

                                                                      定时将实例信息(如果变化了)复制到Eureka Server的间隔时间。(InstanceInfoReplicator线程)

                                                                      • initialInstanceInfoReplicationIntervalSeconds=40

                                                                        首次将实例信息复制到Eureka Server的延迟时间。(InstanceInfoReplicator线程)

                                                                        • eurekaServiceUrlPollIntervalSeconds=300

                                                                          拉取Eureka Server地址的间隔时间(Eureka Server有可能增减)

                                                                          • proxyPort=null

                                                                            Eureka Server的代理端口

                                                                            • proxyHost=null

                                                                              Eureka Server的代理主机名

                                                                              • proxyUserName=null

                                                                                Eureka Server的代理用户名

                                                                                • proxyPassword=null

                                                                                  Eureka Server的代理密码

                                                                                  • eurekaServerReadTimeoutSeconds=8

                                                                                    从Eureka Server读取信息的超时时间

                                                                                    • eurekaServerConnectTimeoutSeconds=5

                                                                                      连接Eureka Server的超时时间

                                                                                      • backupRegistryImpl=null

                                                                                        Eureka Client第一次启动时获取服务注册信息的调用的回溯实现。Eureka Client启动时首次会检查有没有BackupRegistry的实现类,如果有实现类,则优先从这个实现类里获取服务注册信息。

                                                                                        • eurekaServerTotalConnections=200

                                                                                          Eureka client连接Eureka Server的链接总数

                                                                                          • eurekaServerTotalConnectionsPerHost=50

                                                                                            Eureka client连接单台Eureka Server的链接总数

                                                                                            • eurekaServerURLContext=null

                                                                                              当Eureka server的列表在DNS中时,Eureka Server的上下文路径。如http://xxxx/eureka。

                                                                                              • eurekaServerPort=null

                                                                                                当Eureka server的列表在DNS中时,Eureka Server的端口。

                                                                                                • eurekaServerDNSName=null

                                                                                                  当Eureka server的列表在DNS中时,且要通过DNSName获取Eureka Server列表时,DNS名字。

                                                                                                  • region=“us-east-1”

                                                                                                    实例所属区域。

                                                                                                    • eurekaConnectionIdleTimeoutSeconds = 30

                                                                                                      Eureka Client和Eureka Server之间的Http连接的空闲超时时间。

                                                                                                      • heartbeatExecutorThreadPoolSize=2

                                                                                                        心跳(续约)执行器线程池大小。

                                                                                                        • heartbeatExecutorExponentialBackOffBound=10

                                                                                                          心跳执行器在续约过程中超时后的再次执行续约的最大延迟倍数。默认最大延迟时间=10 * eureka.instance.leaseRenewalIntervalInSeconds

                                                                                                          • cacheRefreshExecutorThreadPoolSize=2

                                                                                                            cacheRefreshExecutord的线程池大小(获取注册信息)

                                                                                                            • cacheRefreshExecutorExponentialBackOffBound=10

                                                                                                              cacheRefreshExecutord的再次执行的最大延迟倍数。默认最大延迟时间=10 *eureka.client.registryFetchIntervalSeconds

                                                                                                              • serviceUrl= new HashMap();serviceUrl.put(DEFAULT_ZONE, DEFAULT_URL);

                                                                                                                Eureka Server的分区地址。默认添加了一个defualtZone。也就是最常用的配置eureka.client.service-url.defaultZone=xxx

                                                                                                                • registerWithEureka=true

                                                                                                                  是否注册到Eureka Server。

                                                                                                                  • preferSameZoneEureka=true

                                                                                                                    是否使用相同Zone下的Eureka server。

                                                                                                                    • logDeltaDiff=false

                                                                                                                      是否记录Eureka Server和Eureka Client之间注册信息的差异

                                                                                                                      • disableDelta=false

                                                                                                                        是否开启增量同步注册信息。

                                                                                                                        • fetchRemoteRegionsRegistry=null

                                                                                                                          获取注册服务的远程地区,以逗号隔开。

                                                                                                                          • availabilityZones=new HashMap()

                                                                                                                            可用分区列表。用逗号隔开。

                                                                                                                            • filterOnlyUpInstances = true

                                                                                                                              是否只拉取UP状态的实例。

                                                                                                                              • fetchRegistry=true

                                                                                                                                是否拉取注册信息。

                                                                                                                                • shouldUnregisterOnShutdown = true

                                                                                                                                  是否在停止服务的时候向Eureka Server发起Cancel指令。

                                                                                                                                  • shouldEnforceRegistrationAtInit = false

                                                                                                                                    是否在初始化过程中注册服务。

                                                                                                                                    🔎3.Eureka Server注册中心端配置

                                                                                                                                    Eureka Server注册中心端的配置是对注册中心的特性配置。Eureka Server的配置全部在org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean里,实际上它是com.netflix.eureka.EurekaServerConfig的实现类,替代了netflix的默认实现。

                                                                                                                                    Eureka Server的配置全部以eureka.server.xxx的格式进行配置。

                                                                                                                                    配置列表

                                                                                                                                    • enableSelfPreservation=true

                                                                                                                                      是否开启自我保护

                                                                                                                                      • renewalPercentThreshold = 0.85

                                                                                                                                        自我保护续约百分比阀值因子。如果实际续约数小于续约数阀值,则开启自我保护

                                                                                                                                        • renewalThresholdUpdateIntervalMs = 15 * 60 * 1000

                                                                                                                                          续约数阀值更新频率。

                                                                                                                                          • peerEurekaNodesUpdateIntervalMs = 10 * 60 * 1000

                                                                                                                                            Eureka Server节点更新频率。

                                                                                                                                            • enableReplicatedRequestCompression = false

                                                                                                                                              是否启用复制请求压缩。

                                                                                                                                              • waitTimeInMsWhenSyncEmpty=5 * 60 * 1000

                                                                                                                                                当从其他节点同步实例信息为空时等待的时间。

                                                                                                                                                • peerNodeConnectTimeoutMs=200

                                                                                                                                                  节点间连接的超时时间。

                                                                                                                                                  • peerNodeReadTimeoutMs=200

                                                                                                                                                    节点间读取信息的超时时间。

                                                                                                                                                    • peerNodeTotalConnections=1000

                                                                                                                                                      节点间连接总数。

                                                                                                                                                      • peerNodeTotalConnectionsPerHost = 500;

                                                                                                                                                        单个节点间连接总数。

                                                                                                                                                        • peerNodeConnectionIdleTimeoutSeconds = 30;

                                                                                                                                                          节点间连接空闲超时时间。

                                                                                                                                                          • retentionTimeInMSInDeltaQueue = 3 * MINUTES;

                                                                                                                                                            增量队列的缓存时间。

                                                                                                                                                            • deltaRetentionTimerIntervalInMs = 30 * 1000;

                                                                                                                                                              清理增量队列中过期的频率。

                                                                                                                                                              • evictionIntervalTimerInMs = 60 * 1000;

                                                                                                                                                                剔除任务频率。

                                                                                                                                                                • responseCacheAutoExpirationInSeconds = 180;

                                                                                                                                                                  注册列表缓存超时时间(当注册列表没有变化时)

                                                                                                                                                                  • responseCacheUpdateIntervalMs = 30 * 1000;

                                                                                                                                                                    注册列表缓存更新频率。

                                                                                                                                                                    • useReadOnlyResponseCache = true;

                                                                                                                                                                      是否开启注册列表的二级缓存。

                                                                                                                                                                      • disableDelta=false。

                                                                                                                                                                        是否为client提供增量信息。

                                                                                                                                                                        • maxThreadsForStatusReplication = 1;

                                                                                                                                                                          状态同步的最大线程数。

                                                                                                                                                                          • maxElementsInStatusReplicationPool = 10000;

                                                                                                                                                                            状态同步队列的最大容量。

                                                                                                                                                                            • syncWhenTimestampDiffers = true;

                                                                                                                                                                              当时间差异时是否同步。

                                                                                                                                                                              • registrySyncRetries = 0;

                                                                                                                                                                                注册信息同步重试次数。

                                                                                                                                                                                • registrySyncRetryWaitMs = 30 * 1000;

                                                                                                                                                                                  注册信息同步重试期间的时间间隔。

                                                                                                                                                                                  • maxElementsInPeerReplicationPool = 10000;

                                                                                                                                                                                    节点间同步事件的最大容量。

                                                                                                                                                                                    • minThreadsForPeerReplication = 5;

                                                                                                                                                                                      节点间同步的最小线程数。

                                                                                                                                                                                      • maxThreadsForPeerReplication = 20;

                                                                                                                                                                                        节点间同步的最大线程数。

                                                                                                                                                                                        • maxTimeForReplication = 30000;

                                                                                                                                                                                          节点间同步的最大时间,单位为毫秒。

                                                                                                                                                                                          • disableDeltaForRemoteRegions = false;

                                                                                                                                                                                            是否启用远程区域增量。

                                                                                                                                                                                            • remoteRegionConnectTimeoutMs = 1000;

                                                                                                                                                                                              远程区域连接超时时间。

                                                                                                                                                                                              • remoteRegionReadTimeoutMs = 1000;

                                                                                                                                                                                                远程区域读取超时时间。

                                                                                                                                                                                                • remoteRegionTotalConnections = 1000;

                                                                                                                                                                                                  远程区域最大连接数

                                                                                                                                                                                                  • remoteRegionTotalConnectionsPerHost = 500;

                                                                                                                                                                                                    远程区域单机连接数

                                                                                                                                                                                                    • remoteRegionConnectionIdleTimeoutSeconds = 30;

                                                                                                                                                                                                      远程区域连接空闲超时时间。

                                                                                                                                                                                                      • remoteRegionRegistryFetchInterval = 30;

                                                                                                                                                                                                        远程区域注册信息拉取频率。

                                                                                                                                                                                                        • remoteRegionFetchThreadPoolSize = 20;

                                                                                                                                                                                                          远程区域注册信息线程数。

                                                                                                                                                                                                          🔎4.Eureka Server注册中心仪表盘配置

                                                                                                                                                                                                          注册中心仪表盘的配置主要是控制注册中心的可视化展示。以eureka.dashboard.xxx的格式配置。

                                                                                                                                                                                                          • path=“/”

                                                                                                                                                                                                            仪表盘访问路径

                                                                                                                                                                                                            • enabled=true

                                                                                                                                                                                                              是否启用仪表盘

                                                                                                                                                                                                              🚀三、Euraka高可用

                                                                                                                                                                                                              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第14张

                                                                                                                                                                                                              1. 准备两个Eureka Server
                                                                                                                                                                                                              2. 分别进行配置,相互注册
                                                                                                                                                                                                              3. Eureka Client 分别注册到这两个 Eureka Server中
                                                                                                                                                                                                              server:
                                                                                                                                                                                                                port: 8761
                                                                                                                                                                                                              eureka:
                                                                                                                                                                                                                instance:
                                                                                                                                                                                                                  hostname: eureka-server1 # 主机名(需要配置端口映射)
                                                                                                                                                                                                                client:
                                                                                                                                                                                                                  service-url:
                                                                                                                                                                                                                    defaultZone: http://eureka-server2:8762/eureka
                                                                                                                                                                                                                  register-with-eureka: true # 是否将自己的路径 注册到eureka上。eureka server 不需要的,eureka provider client 需要
                                                                                                                                                                                                                  fetch-registry: true # 是否需要从eureka中抓取路径。eureka server 不需要的,eureka consumer client 需要
                                                                                                                                                                                                              spring:
                                                                                                                                                                                                                application:
                                                                                                                                                                                                                  name: eureka-server-ha
                                                                                                                                                                                                              
                                                                                                                                                                                                              server:
                                                                                                                                                                                                                port: 8762
                                                                                                                                                                                                              eureka:
                                                                                                                                                                                                                instance:
                                                                                                                                                                                                                  hostname: eureka-server2 # 主机名
                                                                                                                                                                                                                client:
                                                                                                                                                                                                                  service-url:
                                                                                                                                                                                                                    defaultZone: http://eureka-server1:8761/eureka
                                                                                                                                                                                                                  register-with-eureka: true # 是否将自己的路径 注册到eureka上。eureka server 不需要的,eureka provider client 需要
                                                                                                                                                                                                                  fetch-registry: true # 是否需要从eureka中抓取路径。eureka server 不需要的,eureka consumer client 需要
                                                                                                                                                                                                              spring:
                                                                                                                                                                                                                application:
                                                                                                                                                                                                                  name: eureka-server-ha
                                                                                                                                                                                                              
                                                                                                                                                                                                              server:
                                                                                                                                                                                                                port: 8001
                                                                                                                                                                                                              eureka:
                                                                                                                                                                                                                instance:
                                                                                                                                                                                                                  hostname: localhost # 主机名
                                                                                                                                                                                                                  prefer-ip-address: true # 将当前实例的ip注册到eureka server 中。默认是false 注册主机名
                                                                                                                                                                                                                  ip-address: 127.0.0.1 # 设置当前实例的ip
                                                                                                                                                                                                                  instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} # 设置web控制台显示的 实例id
                                                                                                                                                                                                                  lease-renewal-interval-in-seconds: 3 # 每隔3 秒发一次心跳包
                                                                                                                                                                                                                  lease-expiration-duration-in-seconds: 9 # 如果9秒没有发心跳包,服务器呀,你把我干掉吧~
                                                                                                                                                                                                                client:
                                                                                                                                                                                                                  service-url:
                                                                                                                                                                                                                    defaultZone: http://eureka-server1:8761/eureka,http://eureka-server2:8762/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
                                                                                                                                                                                                              spring:
                                                                                                                                                                                                                application:
                                                                                                                                                                                                                  name: eureka-provider # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径
                                                                                                                                                                                                              
                                                                                                                                                                                                              server:
                                                                                                                                                                                                                port: 9000
                                                                                                                                                                                                              eureka:
                                                                                                                                                                                                                instance:
                                                                                                                                                                                                                  hostname: localhost # 主机名
                                                                                                                                                                                                                client:
                                                                                                                                                                                                                  service-url:
                                                                                                                                                                                                                    defaultZone:  http://eureka-server1:8761/eureka,http://eureka-server2:8762/eureka  # eureka服务端地址,将来客户端使用该地址和eureka进行通信
                                                                                                                                                                                                              spring:
                                                                                                                                                                                                                application:
                                                                                                                                                                                                                  name: eureka-consumer # 设置当前应用的名称。将来会在eureka中Application显示。将来需要使用该名称来获取路径
                                                                                                                                                                                                              

                                                                                                                                                                                                              🚀感谢:给读者的一封信

                                                                                                                                                                                                              亲爱的读者,

                                                                                                                                                                                                              我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

                                                                                                                                                                                                              如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

                                                                                                                                                                                                              我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

                                                                                                                                                                                                              如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

                                                                                                                                                                                                              【愚公系列】2023年11月 Java教学课程 184-SpringCloud(Eureka注册中心),在这里插入图片描述,第15张

                                                                                                                                                                                                              再次感谢您的阅读和支持!

                                                                                                                                                                                                              最诚挚的问候, “愚公搬代码”