ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring Cloud 学习(二)Eureka服务注册与发现

2021-12-16 19:34:05  阅读:110  来源: 互联网

标签:false Spring eureka Cloud 注册 Eureka com cloud


Eureka服务注册中心搭建

新建module

image-20201031171514617

修改pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!--    引入自定义的api通用包,可以使用Payment支付Entity    -->
        <dependency>
            <groupId>com.yu.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- boot web actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

创建application.yml

server:
  port: 7001

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: localhost
  client:
    #false表示不向注册中心注册自己
    register-with-eureka: true
    #false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

创建主启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class, args);
    }
}

启动测试

image-20201031163914879

将上一篇搭建好的服务提供者和消费者注册到eureka中

修改cloud-provider-payment8001的pom.xml

 		<!--   引入eureka客户端     -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

修改yml

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka

修改主启动类

image-20201031170951832

cloud-consumer-order80与cloud-provider-payment8001同理,不多写了

测试页面

image-20201031170140756

Eureka集群搭建

新建cloud-eureka-server7002

image-20201031171537976

  1. 改pom(从cloud-eureka-server7001的pom复制)

  2. C:\Windows\System32\drivers\etc路径下的hosts文件添加

    127.0.0.1  eureka7001.com
    127.0.0.1  eureka7002.com
    

修改yml(7001)

server:
  port: 7001

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka7001.com
  client:
    #false表示不向注册中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7002.com:7002/eureka/

修改yml(7002)

server:
  port: 7001

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka7002.com
  client:
    #false表示不向注册中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka/

将7001的主启动类复制到7002

将提供者微服务和消费者微服务注册到两台eureka中(yml)

image-20201031174235163

测试

  1. 启动两台eureka
  2. 启动提供者
  3. 启动消费者

image-20201031183514860

提供者8001集群环境搭建(8001,8002)

参考cloud-provider-payment8001来新建cloud-provider-payment8002,修改cloud-provider-payment8002的yml的端口为8002

修改8001和8002的controller

image-20201031193625883

现在已经有两个提供者了,需要修改消费者的访问地址

image-20201031202922153

已经有两个提供者(payment)了,现在需要使用@LoadBalanced注解赋予RestTemplate负载均衡

@Configuration
public class ApplicationContextConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

测试

  1. 启动eureka集群
  2. 启动提供者集群
  3. 启动消费者

最终会8001和8002接口交替调用,实现了负载均衡,搭建成功

关于eureka自我保护

**概述:**默认情况下,如果EurekaServer在- 定时间内没有接收到某 个微服务实例的心跳,EurekaServer将 会注销该实例(默认90秒)。但是当网络分区故障发生(延时、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了一因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过 “自我保护模式”来解决这个问题一-当EurekaServer节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。如果在Eureka Server首页看到下面这段提示,则说明Eureka进入了保护模式。image-20201110134740313

如何配置禁止自我保护:

eureka:
  server:
    enable-self-preservation: false

标签:false,Spring,eureka,Cloud,注册,Eureka,com,cloud
来源: https://blog.csdn.net/curry_mq/article/details/121975058

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有