SpringCloud注册中心之Eureka

2021-06-14 14:03

阅读:533

标签:source   cond   snapshot   exp   odi   配置文件   数据   超时   dev   

怎么使用

引入依赖:

1.改pom

技术图片技术图片
org.springframework.cloud
        spring-cloud-starter-netflix-eureka-server
    com.atguigu.springcloud
        cloud-api-common
        ${project.version}org.springframework.boot
        spring-boot-starter-web
    org.springframework.boot
        spring-boot-starter-actuator
    org.springframework.boot
        spring-boot-devtools
        runtimetrueorg.projectlombok
        lombok
        trueorg.springframework.boot
        spring-boot-starter-test
        test
View Code

2.写yml

技术图片技术图片
server:
  port: 7001


eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
    #集群指向其它eureka
      #defaultZone: http://eureka7002.com:7002/eureka/
    #单机就是7001自己
      defaultZone: http://127.0.0.1:7001/eureka/,http://127.0.0.1:7002/eureka/
  #server:
    #关闭自我保护机制,保证不可用服务被及时踢除
    #enable-self-preservation: false
    #eviction-interval-timer-in-ms: 2000
View Code

3.改主启动类

技术图片技术图片
package com.opendev.eureka.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer //开启Eureka服务
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class,args);
    }
}
View Code

4.测试

访问:http://localhost:7001/

注意:如果进入网页没有看到服务被发现,那是因为当前没有服务注册进来


Eureka 集群环境构建

在新建一个和第一步的Model,修改配置文件端口

1.修改配置:

技术图片技术图片
server:
  port: 7001


eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
    #集群指向其它eureka
      #defaultZone: http://eureka7002.com:7002/eureka/
    #单机就是7001自己
      defaultZone: http://127.0.0.1:7001/eureka/,http://127.0.0.1:7002/eureka/
  #server:
    #关闭自我保护机制,保证不可用服务被及时踢除
    #enable-self-preservation: false
    #eviction-interval-timer-in-ms: 2000
View Code

技术图片

 


 新建一个支付服务分别注册到二个Eureka集群

1.导入依赖

技术图片技术图片
    org.springframework.cloud
            spring-cloud-starter-zipkin
        org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        com.opendev
            System-provider-payment-8001
            1.0-SNAPSHOTorg.springframework.boot
            spring-boot-starter-web
        org.springframework.boot
            spring-boot-starter-actuator
        org.mybatis.spring.boot
            mybatis-spring-boot-starter
        com.alibaba
            druid-spring-boot-starter
            1.1.10mysql
            mysql-connector-java
        org.springframework.boot
            spring-boot-starter-jdbc
        org.springframework.boot
            spring-boot-devtools
            runtimetrueorg.projectlombok
            lombok
            trueorg.springframework.boot
            spring-boot-starter-test
            test
View Code

 2.修改配置

技术图片技术图片
server:
  port: 8001

spring:
  application:
    name: cloud-payment-service
  zipkin:
      base-url: http://localhost:9411
  sleuth:
    sampler:
    #采样率值介于 0 到 1 之间,1 则表示全部采集
    probability: 1
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包
    url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 960512


eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #单机版
      defaultZone: http://127.0.0.1:7002/eureka/,http://127.0.0.1:7001/eureka/
      # 集群版
      #defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
      instance-id: payment8001
      #访问路径可以显示IP地址
      prefer-ip-address: true
      #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
      #lease-renewal-interval-in-seconds: 1
      #Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
      #lease-expiration-duration-in-seconds: 2


mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.atguigu.springcloud.entities    # 所有Entity别名类所在包
View Code

技术图片


 Eureka 集群原理:

技术图片


Eureka的自我保护机制:

故障现象:

技术图片

 简而言之,当微服务集群中有一个挂了之后(不可用),Eureka并不会立刻清理,依旧会对该服务信息进行保存。它是cap理论里面中的AP分支。

Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)

Eureka 默认是开启了保护机制  技术图片

Eureka服务端在收到最后一次心跳后等待时间上限 ,单位为秒(默认是90秒),超时剔除服务  技术图片


 

SpringCloud注册中心之Eureka

标签:source   cond   snapshot   exp   odi   配置文件   数据   超时   dev   

原文地址:https://www.cnblogs.com/cb1186512739/p/12745615.html


评论


亲,登录后才可以留言!