当当当当~~下半部分来咯,直接进入主题把,大家也可以关注我的微信公众号 Java周某人,可以免费领取一些大厂面试资料
服务框架和治理
微服务很多的时候,就需要有治理了。一个好的微服务框架一般分为以下14个部分。如下图所示。这就是开篇所说的,微服务涉及的东西很多,有些初创公司和业务不成熟的产品是不太适合的,成本比较高。
目前国内比较好的微服务框架就是阿里巴巴的DUBBO了,国外的就是spring cloud,大家可以去研究一下.
监控体系
监控是微服务治理的重要环节。一般分为以下四层。如下图所示。
监控的内容分为五个部分:日志监控,Metrics监控(服务调用情况),调用链监控,告警系统和健康检查。
日志监控,国内常用的就是ELK+KAFKA来实现。健康检查和Metrics,像spring boot会自带。Nagios也是一个很好的开源监控框架。
Trace调用链监控
调用链监控是用来追踪微服务之前依赖的路径和问题定位。例如阿里的鹰眼系统。主要原理就是子节点会记录父节点的id信息。
下图是目前比较流行的调用链监控框架。
微服务的限流熔断
假设服务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相关文章!
记得一定要关注我哦,会不定时的福利赠送,包括整理的面试题,学习资料,源码等~~
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。