前言
通过之前的两篇文章,可以简单的搭建一个路由网关了。而我们知道,现在都奉行
前后端分离
开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger
进行api文档生成的。现在由于使用了统一路由网关了,都希望各微服务的api文档
统一的聚合在网关服务中,也方便前端用户查阅,不需要每个服务单独查看。当然了,也是可以做一个文档索引网页进行各微服务的api文档链接的。今天,我们就来讲下使用swagger
实现自动化聚合微服务文档功能。
通过之前的两篇文章,可以简单的搭建一个路由网关了。而我们知道,现在都奉行
前后端分离
开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger
进行api文档生成的。现在由于使用了统一路由网关了,都希望各微服务的api文档
统一的聚合在网关服务中,也方便前端用户查阅,不需要每个服务单独查看。当然了,也是可以做一个文档索引网页进行各微服务的api文档链接的。今天,我们就来讲下使用swagger
实现自动化聚合微服务文档功能。
简单介绍了关于
Zuul
的一些简单使用以及一些路由规则的简单说明。而对于一个统一网关而言,需要处理各种各类的请求,对不同的url进行拦截,或者对调用服务的异常进行二次处理等等。今天,我们就来了解下这方面的相关知识点。
介绍完分布式配置中心,结合前面的文章。我们已经有了一个微服务的框架了,可以对外提供api接口服务了。但现在试想一下,在微服务框架中,每个对外服务都是独立部署的,对外的api或者服务地址都不是不尽相同的。对于内部而言,很简单,通过注册中心自动感知即可。但我们大部分情况下,服务都是提供给外部系统进行调用的,不可能同享一个注册中心。同时一般上内部的微服务都是在内网的,和外界是不连通的。而且,就算我们每个微服务对外开放,对于调用者而言,调用不同的服务的地址或者参数也是不尽相同的,这样就会造成消费者客户端的复杂性,同时想想,可能微服务可能是不同的技术栈实现的,有的是
http
、rpc
或者websocket
等等,也会进一步加大客户端的调用难度。所以,一般上都有会有个api网关,根据请求的url不同,路由到不同的服务上去,同时入口统一了,还能进行统一的身份鉴权、日志记录、分流等操作。接下来,我们就来了解今天要讲解的路由服务:zuul
。
上一章节,简单介绍了分布式配置中心
Spring Cloud Config
的使用。同时,我们也遗漏了一些问题,比如如何配置实时生效,当服务端地址变更或者集群部署时,如何指定服务端地址?回想,在服务注册章节,服务提供者和服务消费者,同时往注册中心进行注册和获取服务地址,而本身注册中心又支持高可用配置。所以,对于配置中心,我们也可以将Server端
和Client端
往注册中心进行注册,借此实现配置中心的服务化,无需指定具体的ip地址,直接根据服务名称进行调用。
介绍完服务的容错保护处理,接下来我们来了解下关于分布式配置中心的相关知识和使用。众所周知,随着项目的越来越多,日益庞大,每个子项目都会伴随着不同的配置项,于此也就多了很多的配置文件。倘若某些配置信息修改,可能就会伴随着一系列配置文件的更新和相应服务的重启操作了。这多余实施而言,也是噩梦一般的存在,增加了一系列运维成本,也会无形中提高出错的几率。所以在微服务越来越多时,就会引入今天要讲解的分布式配置中心,它就是来解决此类问题的。话不多说,开始吧~
今年年初时,阿里巴巴开源的高性能服务框架
dubbo
又开始了新一轮的更新,还加入了Apache孵化器
。原先项目使用了spring cloud
之后,已经比较少用dubbo
。目前又抽调回原来的行业应用部门,可能还会使用dubbo
进行服务调用。趁着编写教材的机会来进行学习下。而且目前Dubbo
也出了springboot
的starter
项目了,借着SpringBoot
的东风,集成起来很方便,基本上就一个依赖包引入的问题了。废话不多说,开始吧~
前面一章,我们讲解了如何整合
Hystrix
。而在实际情况下,使用了Hystrix
的同时,还会对其进行实时的数据监控,反馈各类指标数据。今天我们就将讲解下Hystrix Dashboard
和Turbine
.其中Hystrix Dashboard
是一款针对Hystrix
进行实时监控的工具,通过Hystrix Dashboard
我们可以在直观地看到各Hystrix Command
的请求响应时间, 请求成功率等数据,监控单个实例内的指标情况。后者Turbine
,能够将多个实例指标数据进行聚合的工具。
前一章节,我们知道了如何利用
RestTemplate
+Ribbon
和Feign
的方式进行服务的调用。在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如网络原因或者服务提供者自身处理的原因,或多或少都会出现请求失败或者请求延迟问题,若服务提供者长期未对请求做出回应,服务消费者又不断的请求下,可能就会造成服务提供者服务崩溃,进而服务消费者也一起跟着不可用,严重的时候就发生了系统雪崩
了。鉴于此,产生了断路器等一系列的服务保护机制。本章节,就来说下如何利用Hystrix
进行容错处理。