微服务概念
2019-02-20 14:03:34 1 举报
AI智能生成
微服务概念
作者其他创作
大纲/内容
服务注册与发现
微服务系统内部存在大量的服务,每个服务都存在独立的地址和端口,如何找到这些服务地址,如果这些地址都在应用里配置会导致难以维护且不同环境之间的切换困难,这时需要通过通过注册中心来统一管理服务
注册中心的作用
将服务消费者和服务提供者解耦,通过注册中心来寻找和发现服务
方便健康每个为服务实例的健康状态(通过心跳的方式)
可提供服务的负载均衡
服务注册中心维护服务提供者注册实例信息,服务消费者获取提供者实例列表,通过负载均衡策略选择一个提供者进行消费
服务注册发现的开源组件
Eureka
Consul
zookeeper
服务注册与发现
微服务系统内部存在大量的服务,每个服务都存在独立的地址和端口,如何找到这些服务地址,如果这些地址都在应用里配置会导致难以维护且不同环境之间的切换困难,这时需要通过通过注册中心来统一管理服务
注册中心的作用
将服务消费者和服务提供者解耦,通过注册中心来寻找和发现服务
方便健康每个为服务实例的健康状态(通过心跳的方式)
可提供服务的负载均衡
服务注册中心维护服务提供者注册实例信息,服务消费者获取提供者实例列表,通过负载均衡策略选择一个提供者进行消费
服务注册发现的开源组件
Eureka
Consul
zookeeper
服务的容错
微服务之间的依赖关系复杂,一个请求可能需要多个服务才能完成,如果一个服务不可用,会导致依赖它的服务都不可用,从而导致整个系统瘫痪,产生雪崩效应
熔断器(Circuit Breaker)
当服务处理用户请求的失败次数在一定时间内小于阀值,熔断器关闭,服务正常
当服务处理用户请求的失败次数在一定时间内大于阀值,熔断器打开,请求快速失败,不执行业务逻辑
当熔断器处于打开状态是,一段时间后会处于半打开状态,执行一定数量的请求,剩余的请求会进行快速失败,如果请求失败继续打开熔断器,请求成功了则关闭熔断器
熔断的作用
资源隔离:当某个接口出现故障时,只隔离该接口,不影响其他接口,保证整体服务的可用性
服务降级:大量请求涌入超过服务处理能力时,熔断打开,避免高负载导致服务器故障
自我修复:熔断器会自动监控和恢复服务
开源组件
Hystrix
服务网关
由于微服务系统内部由很多个独立的服务构成,哪些服务是仅供内部调用,哪些服务接口可以对外提供服务,这时就需要一个网关来统一整合和鉴权
网关的作用
对API接口资源进行整合,对外统一暴露
用户身份认证,权限认证
监控,日志记录
开源组件
Zuul
nginx
服务配置中心
传统的单应用架构通常都是通过配置文件的形式来对服务进行配置,例如数据库连接信息,外部接口地址等,在微服务架构中若每个服务都独立来维护配置会导致维护困难且容易出错,这时需要配置中心来统一管理整个服务集群的配置
开源组件
Spring Cloud Config
阿里的Diamond
百度的Disconf
链路追踪
由于微服务系统的服务单元多而且复杂,服务间的调用关系很难通过人为的方式进行理清,一旦系统出现错误就很难定位,这时需要一个链路追踪系统来跟进一个请求到底有哪些服务参与,顺序是怎样的,在哪一部出现了错误能够清晰的展现出来
开源组件
Google的Dapper
Twitter的Zipkin
阿里的鹰眼Eagleeye
实时日志
微服务系统的每个服务节点都会产生自己的日志,若采用传统的将日志写入日志文件的方式难以查找和定位日志,所以需要一个统一日志中心来管理系统产生的日志
开源组件
ELK
0 条评论
下一页