Spring Cloud初识

微服务的出现

单体应用架构

从架构发展来看,单体应用架构存在很多问题:

  • 复杂性高(项目包含多个模块,模块便捷不清,修改一个bug可能都会带来隐含的问题。)
  • 技术债务(不坏不修)
  • 部署评率低(全量部署耗时,出错概率高)
  • 可靠性差(某个应用bug,例如死循环,OOM等,会导致整个应用崩溃)
  • 扩展能力受限(无法按业务模块进行伸缩)
  • 阻碍技术创新(例如一个使用Struts2的应用,已经写了100W行代码,想要切换成springmvc成本巨大。)
    那么如何解决单体应用架构的问题呢?

什么是微服务架构

微服务架构是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间采用轻量级通信机制。服务可通过全自动部署机制独立部署,可用不同语言咖啡,使用不同的数据存储技术。
微服务架构应具备的特性:

  • 每个微服务可独立运行在自己的进程里。
  • 一系列独立运行的微服务共同构建起整个系统。
  • 每个服务为独立业务开发,一个微服务只关注某个特定的模块,例如订单管理,用户管理等。
  • 微服务之前通过一些轻量的通信机制进行通信,例如RESTful API进行调用。
  • 可以使用不同语言与数据存储技术。
  • 全自动的部署机制。

微服务架构优点:

  1. 易于开发和维护
  2. 单个微服务启动快
  3. 局部修改容易部署
  4. 技术栈不受限
  5. 按需伸缩

微服务框架

  1. Spring Cloud - https://spring.io/projects/spring-cloud
  2. Dubbo - https://dubbo.apache.org/zh/
  3. Dropwizard - https://www.dropwizard.io/en/latest/
  4. Armada - https://armada.sh/

推荐Spring Cloud,具备开箱即用的生成特性,文档丰富,社区活跃,为微服务架构提供了完整的解决方案

Spring Cloud是什么

Spring Cloud是基于Spring Boot基础上构建的用于快速构建分布式系统的工具集。
具备如下特性:

  1. 适应各种开发环境。
  2. 隐藏组件复杂性。
  3. 开箱即用,快速启动。
  4. 轻量级组件。
  5. 组件丰富,功能齐全。
  6. 选型中立,丰富。
  7. 灵活。

Spring Cloud发展及版本

2015年3月发布Angel版本 1.0.0

Spring Cloud VS Dubbo

  1. Dubbo只支持Java语言,Spring Cloud可集成Python,Nodejs等语言开发的微服务。
  2. Dubbo通过RPC调用,Spring Cloud基于Http Restful调用,Dubbo占用带宽小。
  3. Dubbo微服务组件功能不齐全,Spring Cloud个组件丰富。
    Dubbo捐给Apache后,继续维护Dubbo3.x版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值