分布式服务跟踪之Spring Cloud Sleuth快速入门

随着业务的发展,系统规模也会变得越来越大,微服务之前的关系也会变得越来越复杂,客户端发起请求后通过一些列的微服务返回的结果,则会形成一个复杂的链路,在每个链路中如果有一个以来服务出现延迟或错误都会引发请求最后的失败,这时候对于整个链路的跟踪极为重要,通过实现队请求调用的跟踪可以帮助我们快速发现错误根源以及监控分析每条请求链路上的性能瓶颈等。

集群监控Spring Cloud Turbine消息队列篇

上一篇文章中我们介绍了Turbine简单的通过服务名称的方式构建监控聚合服务,这一章中我们将要讲一下使用消息队列的方式对集群信息进行收集,监控,我们可以将所有需要收集的监控信息都输出到消息代理中,然后turbine订阅消息代理中的消息,通过异步的方式读取消息,最后将读取出来的监控指标输出到Hystrix Dashboard中。

集群监控之Spring Cloud Turbine快速入门

Spring Cloud Turbine是对集群中微服务信息的统一监控收集监控信息,我们在每个微服务中添加了对Hystrix熔断器功能的支持,可以通过/hystrix.stream对每个微服务的运行状况进行监控,如果在集群中去对每一个微服务去进行单个访问是行不通的,这时候turbine就发挥了它的优势,他可以将多个微服务的hystrix.stream聚合到一起使用turbine.stream进行聚合监控。

API网关服务-Spring Cloud Zuul快速入门

Api网关是一个更为只能的应用服务器,他的定义类似面向对象设计模式中的Façade模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤。他除了要实现请求路由、负载均衡、校验过滤等功能外,还需要更多的能力,比如与服务治理框架的结合,请求转发是的熔断机制,服务的聚合等一些列高级功能。

配置管理中心Spring Cloud Config快速入门

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Ribbon的实现。通过Spring Cloud的封装可以轻松的将面向服务的Rest模板请求自动转化成客户端负载均衡的服务调用。它是一个工具类框架,不能像服务注册中心、配置中心、API网关单独部署,但是可以存在每一个Spring Cloud构建的微服务和基础设施中。负载均衡模块都会维护一个可用的服务列表,通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。客户端负载均衡和服务端负载均衡唯一的区别是客户端负载均衡中,所有客户端负载均衡都会自己维护服务清单,而这些服务清单是由服务注册中心获取得到。

服务容错保护Spring Cloud Hystrix之快速入门

Spring Cloud Hystrix实现了断路器、线程隔离等一系列服务保护功能。它是基于Netflix的开源框架Hystrix实现,该框架的目标在于通过控制那些访问远程系统,服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备服务降级,服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等功能。场景描述:如果我们在微服务中进行通信时,发现其中微服务宕机了,这时候另外一个服务调用了宕机的服务,如果在没有断路器机制的前提下访问,这时候会一直等待,一直等待到服务达到超时的点,会使得线程因调用故障服务被长时间占用不能释放,通过断路器的故障监控,如果发现故障时,会向调用者返回一个错误相应,这样就不用长时间等待。

客户端负载均衡Spring Cloud Ribbon之快速入门

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Ribbon的实现。通过Spring Cloud的封装可以轻松的将面向服务的Rest模板请求自动转化成客户端负载均衡的服务调用。它是一个工具类框架,不能像服务注册中心、配置中心、API网关单独部署,但是可以存在每一个Spring Cloud构建的微服务和基础设施中。负载均衡模块都会维护一个可用的服务列表,通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。客户端负载均衡和服务端负载均衡唯一的区别是客户端负载均衡中,所有客户端负载均衡都会自己维护服务清单,而这些服务清单是由服务注册中心获取得到。

服务治理-Spring Cloud Eureka

Eureka是Spring Cloud Netflix的微服务套件的一部分,它是基于Netflix Eureka的二次开发,主要负责完成微服务架构中的服务治理功能。而且可以与Spring boot很容易的整合进行开发,使得开发变得简单,Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。客户端,也被称为服务消费者与服务的生产者,服务启动时向服务注册中心(服务端)进行注册自己,并通过定时心跳检测的方式告诉服务端存活状态,更新服务续约,同时也可以将服务端的服务列表缓存到本地并周期性刷新服务列表的状态。

Java类加载器详解

JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将JSP文件转换成对应的Class类)。