数据结构 物联网项目 ssh命令 软件开发 testing ssis jestjs vue响应式布局 npm安装vue bootstrap后台模板 后台管理页面模板 java通用版qq浏览器下载 mysql删除存储过程 mysql连接 python集合 python入门教程 python语言入门 python类与对象 python调用命令行 java实现接口 java8的新特性 java求和 java接口怎么写 java数组添加值 java获取当前ip javac javahttp java中文文档 javascript实例 高效能人士的七个习惯下载 kmservice php抓取网页数据 只狼脚本 笔记本测试软件 魔兽地图七个人 催眠魔蛙 摩斯密码翻译器 图片轮播代码 原创检测工具 wegame更新失败
当前位置: 首页 > 学习教程  > 编程语言

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

2020/8/11 19:48:06 文章标签:

在《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=spring.application.name:{spring.application.name}:{random.int}}

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


本文链接: http://www.dtmao.cc/news_show_100202.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?