微服务架构的提出者:马丁福勒
马丁·福勒对微服务大概的概述如下:
就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise defintion of this architectural style)。
? ? ? ? ?但通常而言,微服务架构是一种架构模式或者说是一种架构风格,他提倡将单一应用程序划分成一组小的服务,每个服务独立运行在自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTFUL API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务。也可以使用不同的数据存储。简而言之,微服务架构样式是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运行并于轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建,并且可以由全自动部署机制独立部署。这些服务的集中管理几乎没有,它可以用不同的编程语言编写并使用不同的数据存储技术。
总结:将复杂臃肿的单体应用进行细粒度的划分,每个拆分出来的服务各自打包部署。
所谓一句话“新东西的出现必然是因为市场需求的需要”。我们开发人员或者准开发人员有了这个需求了。因为SpringCloud Netflix 进入到了维护阶段。首先因为SpringCloud版本迭代的非常快,每发布一个release之后又会紧接着发布下一个版本,所以可能会积累一系列的bug,日积月累的使用肯定会出现这样那样的问题。
进入到维护模式,意味着不会再有新的组件技术出现。只是在原来的基础上修修补补。技术上不更新,总要有人去做的吧,几年前Dubbo被SpringCloud所取代。相同的剧本,可惜阿里巴巴和spring社区都是巨头,巨头之间战斗要考虑很多,越是它们想到了合作,SpringCloud与alibaba相结合,技术上有人负责更新新的组件,也还可以继续使用Spring社区的技术,阿里另外一方面也可以推广一波阿里云和各种商业软件,双赢局面。于是SpringCloud Aliababa 诞生了。
SpringCloud Aliabab 系列组件,其中包含了阿里开源组件,阿里云商业化组件,以及集成SpringCloud组件
Alibaba Cloud ACM:一款分布式架构环境中对应用配置进行集中式管理和推送的应用配置中心产品。
AlibabaCloud OSS:阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的云存储服务。
Alibaba Cloud SchedulerX:阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准的定时(基于 Cron 表达式)任务调度服务。
SpringCloudAlibaba 作为整套的微服务解决组件,只依靠目前阿里的开源组件是不够的,更多的是集成当前的社区组件吗,所以SpringCloudAlibaba可以集成Zuul,OpenFeign等网关,也支持Sprinig Cloud Stream 消息组件。
SpringCloudAlibaba致力于提供微服务开发的一站式解决方法。此项目包含开发分布式应用微服务的必须组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。依托SpringCloudAlibaba,您只需要添加一些注解和少量的配置,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。