01 2020 档案
摘要:zuul整合断路器监控后,监控页面Thread Pools一直loading,控制台也无明显报错。
阅读全文
摘要:在微服务中,集成hystrix断路器监控很常见,可里面那些指标到底啥意思,可能还真没去细究过。本文将针对这些监控指标,一一说明。
断路器监控界面如图:
阅读全文
摘要:微服务架构同时也是分布式架构,按业务划分服务单元,往往划分很多个小服务单元。由于服务单元数量众多,同时也可能会集群部署,一个请求可能需要调用多个服务,如果链路上任何一个服务出现问题或者网络超时,都会导致整个调用失败。
随着业务的不断扩张,服务之间的调用会越来越复杂,而服务调用的复杂度,也决定了问题定位的难度,以至于一旦出现错误,便极难定位。
所以,在微服务架构中,必须实现分布式链路追踪,来记录一个请求到底有哪些服务参与,顺序又是怎样,达到每个请求的细节都清晰可见,出了问题,快速定位。
Google开源了Dapper链路追踪组件,并在2010年发表了论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》,这篇文章是业内实现链路追踪的标杆和理论基础,具有非常大的参考价值。
目前,链路追踪组件有Google的Dapper,Twitter 的Zipkin,以及阿里的Eagleeye (鹰眼)等,都是非常优秀的链路追踪开源组件。
阅读全文
摘要:在上一篇文章Spring Cloud进阶之路 | 十一:断路器监控(Hystrix Dashboard)中,阐述了断路器监控组件的使用,可以有好的展示图形化的界面。
但是,微服务下拆分的服务那么多,还都是集群部署,这么多的断路器监控,一个一个查看显然是不可取的。另外,如果这些服务均部署在内网的话,外网想看也看不到。
要想解决这个问题,势必要聚合每个服务的Hystrix Dashboard数据,最好也能有好的以图形化界面展示。
而断路器聚合监控组件Hystrix Turbine将每个服务的Hystrix Dashboard数据进行整合,且如果单个服务的监控界面一样,提供友好的图形化界面。
阅读全文
摘要:在Spring Cloud进阶之路 | 六:断路器(Hystrix)一文中,介绍了服务熔断降级及断路器组件。可是,这些数据终归看不到摸不着,不好监控。
所以,需要一个能针对断路器进行监控的组件,即本文要介绍的Hystrix Dashboard断路器监控组件,该组件针对各断路器的数据,提供友好的图形化界面。
阅读全文
摘要:前面说过,微服务架构中,把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,为了保证高可用,每个微服务都可能会部署集群。
根据之前文章Spring Cloud进阶之路 | 八:授权服务(Spring Cloud Oauth2)、Spring Cloud进阶之路 | 九:资源服务(Spring Cloud Oauth2)的阐述,拆分后的单个服务均为资源服务器,提供资源服务。
既然是对外提供资源服务,势必会引起一个问题,即安全问题。此时,便有两种方案:各资源服务自行处理、统一交由网关处理,各资源服务只关注业务。
如果各资源服务自行处理,微服务拆分后,每个服务均需处理相同安全逻辑,工作量严重重复。即便提取公共部分,也解决不了大问题。因为公共部分只能解决身份认证问题,解决不了鉴权,每个资源服务权限都不尽相同。
统一交由网关处理,网关本身作为资源服务,先期直接进行身份认证,身份认证通过之后再进行鉴权,均通过以后再执行后续逻辑。此时,各资源服务只用关注自身业务,无需处理这些繁琐的安全策略。
阅读全文
摘要:如上一篇文章Spring Cloud进阶之路 | 八:授权服务(Spring Cloud Oauth2)中所述,授权服务和资源服务总是同时存在的,本文即针对资源服务器相关配置进行讲解。
阅读全文
摘要:OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。
OAuth 2 定义了四种 Grant Type,授权码模式(authorization code)、简化模式(implicit)、密码模式(Password)、客户端模式(client credentials),每一种都有适用的应用场景。
阅读全文
摘要:Zuul is the front door for all requests from devices and web sites to the backend of the Netflix streaming application. As an edge service application, Zuul is built to enable dynamic routing, monitoring, resiliency and security. It also has the ability to route requests to multiple Amazon Auto Scaling Groups as appropriate.
简而言之,Zuul是从设备和网站到应用程序后端的所有请求的大门,旨在实现动态路由,监控,弹性和安全性。
阅读全文
摘要:作为Spring框架中,比较复杂且不易理解的框架之一,Spring Security一直以来都是集成噩梦。那么作为其衍生框架Spring Security Oauth2,完美的继承了其复杂度。今天,就其中AuthenticationManager初始化过程做一个说明,如默认的AuthenticationManager如何初始化、如何自定义等。
阅读全文
摘要:在项目中集成断路器监控的时候,访问/actuator/htstrix.stream经常会遇到404问题。
阅读全文
摘要:微服务架构中,一般把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,为了保证高可用,每个微服务都可能会部署集群。即便如此,也无法保证100%可用。如遇程序问题、网络问题、不可抗拒因素等造成的服务不可用,调用此服务就会发生堵塞。此时再加上外部高并发带来的大量请求,由于服务与服务之间的互相依赖,一瞬间就能引起整个微服务系统的瘫痪,也称之为“雪崩”效应。为了解决此问题,“断路器”应运而生。
阅读全文
摘要:Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。
Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端和服务器上的概念与 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 阶段,配置被加载到 Spring 环境中。当应用程序通过部署管道从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。
阅读全文