《Spring Cloud 微服务实战》第3章 服务治理Eureka

在《Spring Cloud 微服务实战》第一章中介绍了Spring Cloud的常用模块:
在这里插入图片描述
Eureka是属于Spring Cloud Netflix的一部分。主要负责服务治理功能。
那什么是服务治理:
服务治理主要就是实现各个微服务之间的服务自动注册与发现。
Eureka同其他服务注册中心一样,支持高可用 配置。它依托于强一致性提供良好的服务实例可用性,通过集群部署,当集群中有分片出现故障时, 那么Eureka就转入自我保护模式。 它允许在分片故障期间继续提供服务的发现和注册, 当故障分片恢复运行时, 集群中 的其他分片会把它们的状态再次同步回来。Netflix推荐每个可 用的区域运行一个Eureka服务端,通过它来形成集群。不同可用区域的服务注册中心通过 异步模式互相复制各自的状态, 这意味着在任意给定的时间点每个实例关于所有服务的状 态是有细微差别的。

搭建注册中心

在书本的第41页

注册中心高可用
EurekaServer的高可用实际上就是将自己作为服务向其他服务注册中心注册自己, 这 样就可以形成一组互相注册的服务注册中心, 以实现服务清单的互相同步, 达到高可用的 效果。 下面我们就来尝试搭建高可用服务注册中心的集群。
服务的发现与消费
而服务消费的任务由伈bbon完成 。Ribbon是一 个基
千HTTP和TCP的客户端负载均衡器,它可以在通过客户端中配置的 ribbonServerList 服务端列表去轮询访问以达到均衡负载的作用。

服务下线
服务下限会通知注册中心,

注册中心自我保护机制:
保护网络不稳定的情况下,服务的心跳不能全部送达注册中心,注册中心会开启自我保护机制,以确保维护这些服务,但是会造成剔除有问题的服务不及时。所以可以关闭自我保护机制
eureka.server.enable-self-preservation=false
@EnableDiscoveryClient:一个客户端注册到注册中心拉取服务列表需要这个注解

下面这个两个是我所在的公司使用的注解(请忽略,我写在这里只是为了理清他们的关系):
@EnableEurekaClient
@EnableFeignClients

真正实现服务发现的是DiscoveryClient,这个类用于帮助与Eureka Server互相协作。
Eureka Client负责下面的任务:
-向Eureka Server注册服务实例
-向Eureka Server服务租约

  • 当服务关闭期间, 向Eureka Server取消租约
    -查询Eureka Server中的服务实例列表

服务续约
eureka.instance.lease-renewa l-interval-in-seconds= 30 eureka.instance.lease-expiration-duration-in-seconds= 90

对于所有eurake服务治理体系下的服务都需要配置eurake客户端,
Eureka客户端的配置主要分为以下两个方面。
• 服务注册相关的配置信息, 包括服务注册中心的地址、 服务获取的间隔时间、 可用区域等。
• 服务实例相关的配置信息, 包括服务实例的名称、IP地址、 端口号、 健康检查路径等。

eurake服务端源码可以从EurekaServerConfig-
Bean入手
关于服务注册类的配置信息可以从EurekaClientConfigBean入手。这个里面的配置信息都是以eureka.client为前缀的
在这里插入图片描述
指定注册中心
eureka.client.serviceUrl
eureka.client.serviceUrl.defaultZone=http://localhost:llll/eureka/
高可用eurake配置:
eureka.client.serviceUrl.defaultZone=http://peerl:1111/eureka/, http://peer2:111 2/eureka/

eureka的密码
为了服务注册中心的安全考虑, 很多时候我们都会为服务注册中心加入安全校 验。 这个时候, 在配置 serviceUrl 时, 需要在 value 值的 URL 中加入相应的安全校验 信息, 比如 http://:@localhost:1111/eureka。 其中, 为安全校验信息的用户名, 为该用户的密码。

下面整理了 org.springframework.cloud.netflix.eureka.Eureka.client.ConfigBean 中定义的常用配置参数以及对应的说明和默认值, 这些参数均以 eureka. client 为前缀。
在这里插入图片描述
在这里插入图片描述
服务实例类配置
它们以以eureka.instance为前缀
配置详情可以通过
org.springframework.cloud.
netflix.eureka.EurekaInstanceConfigBean中的源码了解。

元数据:Eureka 客户端在向服务注册 中心发送注册请求时, 用 来描述自身服务信息的
对象, 其中包含了 一 些标准化的元数据, 比如 服务名称、 实例名称、 实例IP、 实例端口等 用于服务治理的重要信息;以及一些用 千负载均衡策略或是其他特殊用途的自定义 元数据
信息。
所有的配置信息都通过org.springframework.
cloud.netflix.eureka.EurekaInstanceConfigBean进行加载,但在真正进行服 务注册的时候, 还是会包装成com.netflix.appinfo.Instancelnfo 对象发送给Eureka 服务端 。

自定义元数据:
在这里插入图片描述
配置方式:
eureka.instance.metadataMap. =
例如:eureka.instance.metadataMap.zone=shanghai
eureka.instance.instanceid= s p r i n g . a p p l i c a t i o n . n a m e : {spring.application.name}: spring.application.name:{random.int}}

路径修改:
在这里插入图片描述
在这里插入图片描述
因为使用的是rest风,所以支持跨平台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值