微服务之SpringCloud
目录
- 单体架构介绍
- 垂直结构介绍
- SOA架构介绍
- 微服务架构介绍
- SpringCloud技术栈
- 简单介绍
- 技术栈
- SpringCloud技术栈
单体架构介绍
-
如图所示
单体架构图示.jpg
-
特点:
- 所有功能都继承在一个项目中.
- 所有功能打包成一个war或者jar进行发布.
- 部署多个项目集群进行性能提升.
-
优点:
- 项目简单,开发成本低,周期短,适合小型项目.
-
缺点:
- 全部功能集成在一个工程中,对于大型项目不易于开发、扩展和维护.
- 系统性能提升只能通过集群节点,成本高.
- 技术栈受限(一个项目只能有一种技术栈及性能开发)
垂直结构介绍
-
如图所示
垂直架构图示.jpg
-
特点:
- 以单体架构为单位进行垂直业务划分为多个单体架构.
- 项目之间存在数据冗余,耦合性较大.
- 项目之间的接口多为数据同步.
-
优点:
- 项目架构简单,开发成本低,周期短,适合小型项目.
- 通过垂直拆分,原来的单体架构不至于无限扩大.
- 不同的项目可以采用不同的技术.
-
缺点:
- 全部的功能集成在一个工程中,对于大型的项目不易于开发.
- 系统性能扩展只能通过扩展集群节点,成本高.
SOA架构介绍

- 如图所示
- 特点:
- 基于SOA的架构思想将重复公用的功能抽取为组件,以服务的方式给各个系统提供服务.
- 各系统与服务之间采用webservice、rpc等方式进行通信.
- ESB企业服务总线作为项目与服务之间通信的桥梁.
- 优点:
- 将重复的功能抽取出来,提高开发效率,提高系统的可重用性、可维护性.
- 可以针对不同服务的特点定制集群及优化方案.
- 采用EBS减少了系统的耦合.
- 缺点:
- 虽然使用了ESB,但是服务的接口协定不固定(http,webservice,tcp),种类繁多,不利于维护.
微服务架构介绍
-
如图所示
微服务结构图示.jpg
-
特点:
- 将系统服务层完全的独立出来,并将服务层抽取为一个个的服务.
- 微服务遵循单一原则.单一职责原则指的是一个单元(类、方法或者服务等)只应关注整个系统功能中单独、有界限的一部分.
- 微服务之间遵守RESTful等轻量级协议.
-
优点:
- 服务拆分的粒度更细,有利于资源重复的利用,提高开发效率.
- 可以更加精准的对每个服务定制优化方案,提高系统的可维护性能.
- 微服务采用去中心化的思想,服务之间采用RESTful的轻量级协议,相比与ESB更加轻量.
-
缺点:
- 服务多,服务成本高,不利于系统维护.
- 分布式系统开发的技术成本高(容错、分布式事物等).
- SOA有ESB用来集成各个系统和服务,微服务架构没有ESB,服务网关相当于是路由器的概念,服务于服务之间都是可以进行通信的.
SpringCloud技术栈
简单介绍
- Spring Cloud是基于Spring Boot的一整套实现微服务的框架。它提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。
技术栈
- 服务治理:Dubbo(阿里巴巴) 、Dubbox(当当)、Eureka(Netflix)等
- 服务配置:CloudConfig(Spring Cloud)、Disconf(百度)、Qconf(360)、Diamood(淘宝)等
- 服务跟踪:Sleuth(Spring Cloud)、Hydra(京东)、Zipkin(Twitter)等
- 服务调用:Rest、RPC、gRPC
- 负载均衡:Ribbon、Nginx
- 消息队列:Kafka、RabbitMQ、ActiveMQ、RocketMQ
- 服务部署:Docker、Kubernetes
- 服务网关:GateWay
- 服务熔断:Hystrix、Sentinel
- 分布式配置:Zuul、Nacos
- 消息总线:Sleuth
- 批量处理:Bus
网友评论