深刻理解分析微服务(下)

深刻理解分析微服务(下)

当当当当~~下半部分来咯,直接进入主题把,你们也能够关注个人微信公众号 Java周某人,能够免费领取一些大厂面试资料java

服务框架和治理node

微服务不少的时候,就须要有治理了。一个好的微服务框架通常分为如下14个部分。以下图所示。这就是开篇所说的,微服务涉及的东西不少,有些初创公司和业务不成熟的产品是不太适合的,成本比较高。ios

目前国内比较好的微服务框架就是阿里巴巴的DUBBO了,国外的就是spring cloud,你们能够去研究一下.面试


深刻理解分析微服务(下)



监控体系spring

监控是微服务治理的重要环节。通常分为如下四层。以下图所示。docker


深刻理解分析微服务(下)



监控的内容分为五个部分:日志监控,Metrics监控(服务调用状况),调用链监控,告警系统和健康检查。微信

日志监控,国内经常使用的就是ELK+KAFKA来实现。健康检查和Metrics,像spring boot会自带。Nagios也是一个很好的开源监控框架。架构

Trace调用链监控框架

调用链监控是用来追踪微服务以前依赖的路径和问题定位。例如阿里的鹰眼系统。主要原理就是子节点会记录父节点的id信息。ide


深刻理解分析微服务(下)



下图是目前比较流行的调用链监控框架。


深刻理解分析微服务(下)



微服务的限流熔断

假设服务A依赖服务B和服务C,而B服务和C服务有可能继续依赖其余的服务,继续下去会使得调用链路过长。若是在A的链路上某个或几个被调用的子服务不可用或延迟较高,则会致使调用A服务的请求被堵住,堵住的请求会消耗占用掉系统的线程、io等资源,当该类请求愈来愈多,占用的计算机资源愈来愈多的时候,会致使系统瓶颈出现,形成其余的请求一样不可用,最终致使业务系统崩溃。

通常状况对于服务依赖的保护主要有两种方式:熔断和限流。目前最流行的就是Hystrix的熔断框架。

下图是Hystrix的断路器原理图:


深刻理解分析微服务(下)



限流方式能够采用zuul的API限流方法。

Docker 容器部署技术&持续交付流水线

随着微服务的流行,容器技术也相应的被你们重视起来。容器技术主要解决了如下两个问题:

1:环境一致性问题。例如java的jar/war包部署会依赖于环境的问题(操着系统的版本,jdk版本问题)。

2:镜像部署问题。例如java,rubby,nodejs等等的发布系统是不同的,每一个环境都得很麻烦的部署一遍,采用docker镜像,就屏蔽了这类问题。

下图是Docker容器部署的一个完整过程。


深刻理解分析微服务(下)



更重要的是,拥有如此多服务的集群环境迁移、复制也很是轻松,只需选择好各服务对应的Docker服务镜像、配置好相互之间访问地址就能很快搭建出一份彻底同样的新集群。

容器调度和发布体系

目前基于容器的调度平台有Kubernetes,mesos,omega。下图是mesos的一个简单架构示意图。


深刻理解分析微服务(下)



下图是一个完整的容器发布体系


深刻理解分析微服务(下)



喜欢这篇文章的话,能够给做者点个喜欢,点下关注,天天都会分享Java相关文章!

记得必定要关注我哦,会不定时的福利赠送,包括整理的面试题,学习资料,源码等~~

相关文章
相关标签/搜索