目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

微服务与SpringCloud

应用架构的发展

 软件架构分为三种架构类型,分别是业务架构、应用架构、技术架构。业务决定应用、技术支撑应用。架构的发展
 单体架构 => 分布式架构 => SOA 架构 => 微服务架构
微服务架构
 微服务是一种架构风格,可以将一个大型复杂的业务系统按功能拆分为多个相互独立的微服务,各个微服务之间是松耦合的,通过各种远程协议进行同步/异步通信,各微服务均可以被独立部署、扩/缩容以及升/降级

基于 SpringCloud 的微服务解决方案

微服务解决方案

SpringCloud 是什么

 它是由 Spring 官方开发维护,基于 SpringBoot 开发,提供的一套完整的微服务解决方案,其中容纳了很多子项目,SpringCloud 组件如下图所示:

组件名称 所属项目 组件分类
Eureka spring-cloud-netflix 注册中心
Zuul spring-cloud-netflix 第一代网关
Sidecar spring-cloud-netflix 多语言
Ribbon spring-cloud-netflix 复杂均衡
Hystrix spring-cloud-netflix 熔断器
Turbine spring-cloud-netflix 集群监控
Feign spring-cloud-openfeign 声明式 HTTP 客户端
Consul spring-cloud-consul 注册中心
Gateway spring-cloud-gateway 第二代网关
Sleuth spring-cloud-seluth 链路追踪
Config spring-cloud-config 配置中心
Bus spring-cloud-bus 总线
Pipeline spring-cloud-pipelines 部署管道
Dataflow spring-cloud-dataflow 数据处理

微服务面临的困难和挑战

 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度,增强可扩展性,便于敏捷开发。与此同时,微服务也面临一些挑战,那些难点如下:

  • 单体应用拆分为分布式系统后,进程间的通信机制和故障处理措施变得更加复杂。
  • 系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变得非常突出。
  • 微服务数量众多,其测试、部署、监控等都变得更加困难。

作者:Soulboy