Eurekaサービスの登録とspringcloudノートの発見(2)

1.ユーレカの自己防衛メカニズムとは何ですか?

Eurekaには自己保護メカニズムがあります。つまり、eurekaレジストリがサービスが利用できないことを検出しても、サービスをすぐにキャンセルすることはありません。待機プロセスがあります。時間は約90秒です。 90秒。、Eurekaはサービスの基本情報が失われるのを防ぐことができます。これの目的は、サービスクラッシュの本当の理由が停電などのネットワーク障害である可能性があることです。マイクロサービス自体実際には正常であり、ログアウトしないでください。サービス。

自己保護メカニズムは、ネットワークの異常に対処するためのセキュリティ対策であり、eurekaクラスターをより堅牢で安定させます。

また、springcloudではeureka.server.enable-self-preservation=fase、ユーレカオフする自己保護メカニズムを使用できますが、お勧めしません。

2.デモンストレーションの手順

1.ライブラリを紹介します

<!-- eureka -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.2.5.RELEASE</version>
</dependency>
<!-- 完善eureka监控信息 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.yaml構成

server:
  port: 8001

mybatis:
  type-aliases-package: com.lhh.springcloud.pojo
  mapper-locations: classpath:mappers/*.xml
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

spring:
  application:
    name: springcloud-provider-emp
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    #    url: jdbc:mysql://localhost:3306/db01
    url: jdbc:mysql://localhost:3306/springcloud?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    #    password: root
    password: 123456
    #datasource category
    type: com.alibaba.druid.pool.DruidDataSource

#eureka的配置
#Eureka配置:服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/
  instance:
    instance-id: springcloud-provider-emp-8001 #修改eureka上面的默认描述信息
    prefer-ip-address: true #显示服务来自哪个ip地址

#info监控信息配置
info:
  app.name: lhh-springcloud
  company.name: lhh.com

debug: true

2.開始

開始springcloud-eureka-7001springcloud-provider-emp-8001

package com.lhh.springcloudprovideremp8001;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

/*@SpringBootApplication*/
@SpringBootApplication(exclude= {
    
    DataSourceAutoConfiguration.class})
@MapperScan("com.lhh.springcloudprovideremp8001.dao")
@EnableEurekaClient
public class SpringcloudProviderEmp8001Application {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(SpringcloudProviderEmp8001Application.class, args);
    }
}

localhost:7001介してアクセスます。

eurekaレジストリには8001サービスがあることが期待されます。

3.自己保護メカニズムを実証する

8001サービスを閉じると、eurekaレジストリは引き続きサービス情報を確認し、一定期間(デフォルトは90秒)維持できます。この期間を超えると、例外がスローされます。これは正しい結果です。

総括する

その作品に依存しているため、解決されておらず、当面は対処方法が見つからないので、とりあえずここに置いておき、後で考えて、もう一度解決します。

おすすめ

転載: blog.csdn.net/qq_41486775/article/details/114395224