什么是分布式微服务架构?三分钟彻底弄懂什么是分布式和微服务( 三 )


八、服务链路追踪在微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与、参与顺序,是每个请求链路清晰可见,便于问题快速定位
常用链路追踪组件有google的DApper、Twitter 的Zipkin,以及阿里Eagleeye(鹰眼)
九、微服务框架市面常用微服务框架有:Spring Cloud 、Dubbo 、kubernetes

什么是分布式微服务架构?三分钟彻底弄懂什么是分布式和微服务

文章插图
 
  • 从功能模块上考虑,Dubbo缺少很多功能模块,例如网关、链路追踪等
  • 从学习成本上考虑,Dubbo 版本趋于稳定,稳定完善、可以即学即用,难度简单,Spring cloud 基于Spring Boot,需要先掌握Spring Boot,例外Spring cloud 大多为英文文档,要求学习者有一定的英文阅读能力
  • 从开发风格考虑,Dubbo倾向于xml的配置方式,Spring cloud 基于Spring Boot,采用基于注解和JAVABean配置方式的敏捷开发
  • 从开发速度上考虑,Spring cloud 具有更高的开发和部署速度
  • 从通信方式上考虑,Spring cloud 基于HTTP Restful 风格,服务于服务之间完全无关、无耦合 。Dubbo 基于远程调用,对接口、平台和语言有强依赖性,如果需要实现跨平台,需要有额外的中间件 。
所以Dubbo专注于服务治理;Spring Cloud关注于微服务架构生态 。
十、SpringCloud常用组件
  • Eureka:服务注册和发现组件
  • Hystrix:熔断组件
  • Ribbon:负载均衡组件
  • Zuul:路由网关
以上4个组件来自于Netflix 公司,统称为Spring Cloud Netflix
  • Spring Cloud Config:配置文件统一管理
  • Spring Cloud Security:Spring Security组件封装,提供用户验证和权限验证,一般与Spring Security OAuth2 组一起使用,通过搭建授权服务,验证Token或者JWT这种形式对整个微服务系统进行安全验证
  • Spring Cloud Sleuth:分布式链路追踪组件,他分封装了Dapper、Zipkin、Kibana 的组件
  • Spring Cloud Stream:Spring Cloud框架的数据流操作包,可以封装RabbitMq,ActiveMq,Kafka,redis等消息组件,利用Spring Cloud Stream可以实现消息的接收和发送
一个简单的Spring Cloud 构建的微服务系统,通常由服务注册中心Eureka、网关Zuul、配置中心Config和授权服务Auth构成
什么是分布式微服务架构?三分钟彻底弄懂什么是分布式和微服务

文章插图
 
Spring Cloud Netflix功能:
  • 服务发现:可以注册Eureka实例,并且客户端可以使用Spring托管的Bean发现实例
  • 服务发现:可以使用声明性Java配置创建嵌入式Eureka服务器
  • 断路器:Hystrix客户端可以使用简单的注释驱动的方法装饰器构建
  • 断路器:具有声明性Java配置的嵌入式Hystrix仪表板
  • 声明式REST客户端:Feign创建一个用JAX-RS或Spring MVC注释修饰的接口的动态实现 。
  • 客户端负载均衡器:功能区
  • 外部配置:从Spring Environment到Archaius的桥梁(使用Spring Boot约定启用Netflix组件的本机配置)
  • 路由器和过滤器:Zuul过滤器的自动重新注册,以及用于反向代理创建的简单配置约定




推荐阅读