springcloud组件工作流程
2018-12-20 11:21:56 1 举报
spring cloud config 工作流程
作者其他创作
大纲/内容
make Remote call
register
service-3
注册服务
Eureka Server
Eurekaclient
C
product1product2product3
开发
服务发现架构
对比
调用
服务调用失败(达到阀值)
2.征询用户是否同意
Cancel
potral
微服务集群
Register
推送
invoker
断路器时间窗结束
config client B
注册
用户
B服务
Nacos
调用失败
A服务
拉取配置文件信息
eureka server
容错机制实现点
发送心跳
访问
config server
C服务
service-1
服务发现组件Eureka-Server
client
调用成功
mate server
1.“给我Access token”
业务逻辑
zookeeper
拉取
ApplicationClient(服务消费者)
获取服务列表,写入本地缓存
Make Remote
整个系统可用
API网关进化
service-2
服务的注册
getRegister
spring cloud config 自动刷新配置文件流程
gateway
eureka
负 载 均 衡
ApplicationService(服务提供者)
提交配置文件信息
Ribbon
服务发现组件具备以下功能:1.服务注册表:是服务发现组建的核心,他用来记录各个微服务的信息,例如微服务的名称、IP、端口等。服务注册表提供查询API和管理API,查询API用于API查询可用的微服务实例,管理API用于服务的注册和注销。2.服务的注册与服务发现:服务注册是指微服务在启动时,将自己的信息注册到服务发现组件的过程。服务发现是指查询微服务列表及其网络地址的机制。3.服务检查:服务发现组件使用定时机制检测已注册的服务,如发现某实例长时间无法访问,就会从服务注册表中移除该实例。4.自我保护机制:Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况: a.Eureka不再从注册表中移除因为长时间没有收到心跳而过期的服务; b.Eureka仍然能够接受新服务注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用); c.当网络稳定时,当前实例新注册的信息会被同步到其它节点中;
查询可用服务
Eureka server
admin server
Replicate
Dubbo registory
order本地的服务列表
provider
发送
过滤器
正常
Nighx load balance
服务消费者
服务
order
1.config server启动的时候会从svn拉取配置文件,并在本地做临时文件备份,eg:window环境下C:\\Users\\qiandao\\AppData\\Local\\Temp\\2.config client启动的时候会从config server根据时间戳和版本读取配置文件信息3.开发人员修改配置文件并提交到svn4.config client 发起refresh请求.更新client server本地缓存的临时文件信息5.config client发起请求获取配置文件信息
4.返回Access Token
资源服务用户数据需要验证AccessToken
6.返回数据
授权服务器生成Access Token
OAuth2 应用业务场景
服务发现
断路器关闭
make Remot
服务调用失败(低于开关阀值)
eureka client
monitor
Eureka架构图
服务提供者Service-B
zookeeper服务的注册与发现
consumer
容错机制需要注意的两点:1.为网络请求设置超时一次远程调用对应着一个线程/进程。如果响应太慢,这个线程或者进程就得不到释放,而线程/进程又对应着系统资源,如果得不到释放的线程/进程越聚越多,会导致资源被耗尽,导致服务的最终不可用。2.使用断路器模式 断路器可理解为容易导致错误的代理,这种代理能够统计一段时间内调用的失败的次数,并决定是正常请求依赖的服务还是直接返回。 熔断:断路器可以实现快速失败,如果它在一段时间内检测到许多类似的错误(例如超时),就会在之后的一段时间内,强迫对该服务的调用快速失败,即不再请求所依赖的服务器。 自我修复:断路器也可自动诊断依赖的服务是否已恢复正常,如果服务恢复正常,就会恢复对该服务的请求。
服务列表
服务消费者Service-A
断路器半开
负载均衡请求
A不可用
product集群
portal DB
客户应用AppAccess Token
get Register
作用:1.默认情况下,Eureka Server同时也是Eureka client .多个Eureka Server实例,互相之间通过复制的方式,来实现服务注册表中数据的同步。2.Eureka client会缓存服务注册列表中的信息。优点:减轻Eureka Server的压力,其次即便Eureka全部宕机,也可以实现服务间的调用
注意:每次refresh请求仅代表当前节点服务器的更新配置请求,不会影响到同节点的其他服务器的配置信息,因为config server在做临时文件备份的时候会根据时间戳标记不同节点的不同服务器请求的文件内容,以防止单个服务器发送请求后把同节点的配置文件全部更新
config client A
服务的发现
SVN 服务器
断路器状态转换
传统服务-单体应用
断路器打开
apollo工作原理
服务调用成功
Renew
随时间推移
config DB
notify
服务提供者
雪崩效应形成过程
config client C
3.同意
5.带着Access Token
数据库DB
A、B不可用
0 条评论
回复 删除
下一页