Springcloud:Eureka服务注册与发现(2)

简介: Springcloud:Eureka服务注册与发现(2)

Eureka的自我保护机制

出厂默认,自我保护机制是开启的

eureka.server.enable-self-preservation = true

我们可以禁用

server:
  enable-self-preservation: false
  eviction-interval-timer-in-ms: 2000

1.png

1.png


当Eureka一定时间内没有检测到服务的心跳或者短时间内丢失了多个服务,那么服务端就会认为是网络故障或者是一系列i意外的发生


此时不应该注销任何的服务。同时新的服务也可以继续进来,


设计哲学


好死不如赖活着


Eureka宁可保护错误的服务信息,也不会去轻易的注销服务


1.png

小测试

我们在8001的配置文件中追加一些配置

1.png

启动项目之后

过五秒关闭8001

你会发现两秒就消失了

配置生效


Eureka集群原理

Eureka集群原理说明:

1.png


搭建注册中心集群

参考我们的注册中心7001,搭建一个一模一样的注册中心

在搭建之前请去修改一下映射文件,

找到C:\Windows\System32\drivers\etc路径下的hosts文件,修改


1.png


因为我们之前使用都是一个单机的项目,我们要集群那么不能使用 localhost,他会被识别成一样的路径


我们修改一些映射

如:

127.0.0.1 eureka7001.com

127.0.0.1 eureka7002.com

本质还是localhost但是却是两个不一样的映射


导入和7001相同的依赖


之后分别修改


7001配置文件


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


7002


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


集群其实就是一句话:相互守望,


之后我们还要修改一下 服务提供者 8001的注册地址,他现在同时需要注册到两个注册中心去


service-url:
  defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群版

测试:


先要启动EurekaServer,7001/7002服务

再要启动服务提供者provider,8001服务

再要启动消费者,80

http://localhost/consumer/payment/get/1

**注意:**记得修改服务的端口号,避免两个模块都是用7001导致服务异常


查看结果即可


支付服务提供者8001集群环境构建

同上搭建一个除了端口号和8001一抹一样的模块


cloud-provider-payment8002


配置文件修改一个端口号即可


之后修改业务代码


因为是集群,所以之后我们要做负载均衡


我们需要修改接口业务代码


8001:


1.png


8002同上

我们通过获取不同配置文件中的端口号来判断调用的是哪一个模块

之后去修改消费者80的业务代码

= 订单服务访问地址不能写死 =

改成我们的服务提供者集群的服务别名


public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";


PS:一定要修改,不然无法实现负载均衡,

之后去给config中的resttemplate的bean上加上一个注解

@LoadBalanced注解赋予RestTemplate负载均衡的能力

之后就是可以跑项目来测试了


步骤:

先要启动EurekaServer,7001/7002服务

再要启动服务提供者provider,8001/8002服务

http://localhost/consumer/payment/get/1

负载均衡效果达到,8001/8002端口交替出现

Ribbon和Eureka整合后Consumer可以直接调用服务而不用再关心地址和端口号,且该服务还有负载功能了


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
51 0
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
142 0
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
92 0
|
16天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
22天前
|
开发框架 负载均衡 Java
Spring boot与Spring cloud之间的关系
总之,Spring Boot和Spring Cloud之间的关系是一种构建和扩展的关系,Spring Boot提供了基础,而Spring Cloud在此基础上提供了分布式系统和微服务架构所需的扩展和工具。
17 4
Spring boot与Spring cloud之间的关系
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
63 1
|
1月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
197 0
|
1月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
782 0
|
1月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
37 1
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
42 0