SpringCloud系列之一: 微服务一站式解决方案

最近公司项目技术选型的过程中选取了SpirngCloud,那到底什么是SpringCloud?以前的项目中用的都是Dubbo,而这次技术选型为什么会选择SpringCloud?与Dubbo有什么区别?Cloud与微服务有什么关系?微服务是什么?SpringCloud与SpringBoot又有什么关系?等一系列问题扑面而来,下面是小编画的一副思维导图,开始今天的分享啦!!!
SpringCloud系列之一: 微服务一站式解决方案_第1张图片

在分享SpringCloud之前先要追溯他的来源,首先分享一下微服务。

一:微服务

1微服务架构是什么?

微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小服务,每个服务运行其独立的自己的进程,服务之间互相协调,互相配合,为用户提供最终价值,服务之间采用轻量级的通信机制互相沟通(通信是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境,另外,应尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

2.与微服务架构有什么区别?

微服务强调的是服务的大小,它具体解决某个问题或提供落地对应服务的的一个服务应用,侠义的将就是IDEA里的一个个微服务工程module.

微服务架构强调的是整个系统的架构设计,相对于one for all来讲按照业务逻辑将大系统分成一个个独立的微小粒度的服务进行开发。

3.优缺点?
优点:
高内聚,低耦合,开发简单,效率高。开发部署阶段都是独立的。
每个微服务有自己的存储能力,可以有自己的数据库。

缺点:
服务间通信成本
事务性处理
开发人员要处理分布式系统的复杂性
多服务运维难度,随着服务的增加,运维的压力也在增大

4微服务技术栈有哪些?
SpringCloud系列之一: 微服务一站式解决方案_第2张图片
SpringCloud系列之一: 微服务一站式解决方案_第3张图片

5,与SpringCloud 有什么关系?
微服务是一种思想,上面说的很多技术栈和维度,而springCloud就是微服务具体的落地实现。

二:SpringCloud

1.SpringCloud是什么?

是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
SpringCloud系列之一: 微服务一站式解决方案_第4张图片

2.与SpringBoot 关系?
SpringBoot 专注于快速开发单个个体服务。

SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体服务整合并管理起来,为各个微服务之间提供配置管理,服务发现,断路器,路由,微代理,分布式会话等等服务。

SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot.
SpringBoot专注快速,方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。

3.与dubbo区别?
1.社区活跃度,SpringCloud完胜doubble.

2.微服务技术栈具体的落地技术对比
SpringCloud系列之一: 微服务一站式解决方案_第5张图片

SpringCloud 的功能比Dubbo更加强大,而且作为Spring 的拳头项目,它能够与SPring Framework,boot等其他Spring项目完美融合,这些对于微服务而言是至关重要的。

Dubbo构建的微服务架构就像是组装机,技术栈用到的组件我们得选择别的公司的,着对技术人员的要求是很高的,中小型公司没有这么大的能力去修改Dubbo源码+周边一整套解决方案。
而SpringCloud更像品牌机,有20多种组件,自己就提供了微服务技术栈的所有要求。

资源
1.什么是微服务,业界大神Martin Fowler论文:
https://martinfowler.com/articles/microservices.html

2.SpringCloud官网:
http://projects.spring.io/spring-cloud/
书籍:SpringCloud微服务实战
深入理解SpringCloud与微服务构建

3.中国社区
http://springcloud.cn

下一篇文章会分享:
如何搭建一套SpringCloud 微服务平台
SpringCloud的各组件以及配置

你可能感兴趣的:(分布式,SpringCloud)